Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 860042f

Browse files
committed
20191215
1 parent d58778f commit 860042f

File tree

17 files changed

+111
-20
lines changed

17 files changed

+111
-20
lines changed

‎code/lc145.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ public class TreeNode {
2020
}
2121
public List<Integer> postorderTraversal(TreeNode root) {
2222
ArrayList<Integer> res = new ArrayList();
23-
if(root==null)
24-
return res;
23+
if(root==null) return res;
2524
Stack<TreeNode> st = new Stack();
2625
while(!st.isEmpty()||root!=null){
2726
while(root!=null) {

‎code/lc152.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public static int maxProduct(int[] nums) {
1919
max = Math.max(nums[i],nums[i]*max);
2020
min = Math.min(nums[i],nums[i]*min);
2121
}else{
22-
int temp = max; //注意maxh会被替换,先保存下
22+
int temp = max; //注意max会被替换,先保存下
2323
max = Math.max(nums[i],nums[i]*min);
2424
min = Math.min(nums[i],nums[i]*temp);
2525
}

‎code/lc221.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ public static void main(String[] args) {
1313
System.out.println(maximalSquare(matrix));
1414
}
1515
public static int maximalSquare(char[][] matrix) {
16-
if(matrix.length==0)
17-
return 0;
16+
if(matrix.length==0) return 0;
1817
int[][] dp = new int[matrix.length][matrix[0].length];
1918
int max = 0;
2019
for (int i = 0; i < matrix.length ; i++) {

‎code/lc239.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
* 思路:用双向队列,保证队列里是递减的。单调队列,好好学习一下。
88
* Tips:与lc84做比较,84是递增栈
99
*/
10-
import java.util.ArrayDeque;
1110
import java.util.Deque;
11+
import java.util.LinkedList;
1212

1313
public class lc239 {
1414
public static void main(String[] args) {
@@ -25,7 +25,7 @@ public static int[] maxSlidingWindow(int[] nums, int k) {
2525
return new int[]{};
2626
int[] res = new int[nums.length-k+1];
2727
int cur = 0;
28-
Deque<Integer> dq = new ArrayDeque(); //队列里是递减的,存的仍然是下标
28+
Deque<Integer> dq = new LinkedList(); //队列里是递减的,存的仍然是下标
2929
for (int i = 0; i < nums.length ; i++) {
3030
if( !dq.isEmpty() && dq.peekFirst()<=i-k) //窗口长度过长了,删掉头
3131
dq.removeFirst();

‎code/lc31.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@
66
* 分类:Array
77
* 思路:从后往前找第一个变小的数x,从后往前找出比第一个x大的数,交换,再把之后的数逆序即可
88
* Tips:很典型的排列组合题,思路方法记忆一下。注意比较时是否有=。
9+
* https://leetcode.com/problems/next-permutation/solution/
10+
*
11+
* 1584 76531
12+
* 1585 13467
913
*/
1014
public class lc31 {
1115
public static void main(String[] args) {
12-
int[] nums = {1,2,3};
16+
int[] nums = {1,5,8,4,7,6,5,3,1};
1317
nextPermutation(nums);
1418
for (int i:nums){
1519
System.out.println(i);
@@ -25,7 +29,7 @@ public static void nextPermutation(int[] nums) {
2529
}
2630
ptr--;
2731
if(ptr!=-1){
28-
//从后往前,找比
32+
//从后往前找出比第一个x大的数
2933
int val = nums[ptr];
3034
int ptr2 = nums.length-1;
3135
while(ptr2>ptr){

‎code/lc322.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
* 分类:Dynamic Programming
77
* 思路:和lc279一样的思路,注意下没解的情况
88
* Tips:不用Set, 加一个dp[0]=0,可以直接递归出结果
9+
* dp[i] 表示组合成总值i的最少零钱数
910
*/
1011
import java.util.Arrays;
1112
import java.util.HashSet;

‎code/lc324.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ private void swap(int[] nums, int i, int j) {
3939
}
4040

4141
public int findMedium(int[] nums, int left, int right, int k){
42-
int cur = nums[left];
4342
int l = left;
4443
int r = right;
4544
while(left<right){

‎code/lc39.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ public static void main(String[] args) {
2020
}
2121
public static List<List<Integer>> combinationSum(int[] candidates, int target) {
2222
List<List<Integer>> res = new ArrayList<List<Integer>>();
23-
if(candidates.length==0||target==0)
24-
return res;
23+
if(candidates.length==0||target==0) return res;
2524
List<Integer> l = new ArrayList<Integer>();
2625
backtracking(res,candidates,target,l,0,0);
2726
return res;

‎code/lc542.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package code;
2+
/*
3+
* 542. 01 Matrix
4+
* 题意:0,1矩阵,每个点找离自己最近的0的距离
5+
* 难度:Medium
6+
* 分类:Depth-first Search, Breadth-first Search
7+
* 思路:广度优先搜索
8+
* Tips:
9+
*/
10+
import java.util.LinkedList;
11+
import java.util.Queue;
12+
13+
public class lc542 {
14+
public int[][] updateMatrix(int[][] matrix) {
15+
Queue<int[]> qu = new LinkedList();
16+
for(int i=0; i<matrix.length; i++){
17+
for(int j=0; j<matrix[0].length; j++){
18+
if(matrix[i][j]==0){
19+
qu.add(new int[]{i,j});
20+
}
21+
else matrix[i][j]=Integer.MAX_VALUE;
22+
}
23+
}
24+
25+
int[][] dirs = {{-1,0},{1,0},{0,-1},{0,1}};
26+
while(!qu.isEmpty()){
27+
int[] cell = qu.remove();
28+
for(int i=0; i<4; i++){
29+
int cur_row = cell[0]+dirs[i][0];
30+
int cur_col = cell[1]+dirs[i][1];
31+
if(cur_row<0||cur_row>=matrix.length||cur_col<0||cur_col>=matrix[0].length||matrix[cur_row][cur_col]<=matrix[cell[0]][cell[1]]+1) continue;
32+
matrix[cur_row][cur_col] = matrix[cell[0]][cell[1]]+1;
33+
qu.add(new int[]{cur_row,cur_col});
34+
}
35+
}
36+
return matrix;
37+
}
38+
}

‎code/lc685.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* 思路:要把问题想清楚
88
* 判断是否有某个节点父节点有两个, 记为e1, e2
99
* 再判断是否有环
10-
* 4中情况,分别想清楚返回什么
10+
* 4种情况,分别想清楚返回什么
1111
* 自己没想清楚两种情况的交叉,以为判断完第一步就可直接返回
1212
* 如何判断有环,可以利用并查集的思想
1313
* Tips:https://leetcode.com/problems/redundant-connection-ii/discuss/108045/C%2B%2BJava-Union-Find-with-explanation-O(n)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /