Skip to content

Commit f6df74a

Browse files
committed
20190315
1 parent dc31857 commit f6df74a

File tree

4 files changed

+44
-2
lines changed

4 files changed

+44
-2
lines changed

code/lc113.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package code;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
/*
6+
* 113. Path Sum II
7+
* 题意:找从root到叶子节点和为sum的路径
8+
* 难度:Medium
9+
* 分类:Tree, Depth-first Search
10+
* 思路:回溯,注意因为节点上可能正值,可能负值,所以不能剪枝
11+
* Tips:
12+
*/
13+
public class lc113 {
14+
public class TreeNode {
15+
int val;
16+
TreeNode left;
17+
TreeNode right;
18+
TreeNode(int x) {
19+
val = x;
20+
}
21+
}
22+
public List<List<Integer>> pathSum(TreeNode root, int sum) {
23+
List<List<Integer>> res = new ArrayList<>();
24+
helper(res, root, sum, 0, new ArrayList<>());
25+
return res;
26+
}
27+
public void helper(List<List<Integer>> res, TreeNode root, int sum, int curr, List<Integer> curr_ls) {
28+
if(root==null) return;
29+
curr_ls.add(root.val);
30+
if(curr+root.val==sum && root.left==null && root.right==null) { //到叶子节点
31+
res.add(new ArrayList<>(curr_ls));
32+
curr_ls.remove(curr_ls.size()-1);
33+
return;
34+
}
35+
helper(res, root.left, sum, curr+root.val, curr_ls);
36+
helper(res, root.right, sum, curr+root.val, curr_ls);
37+
curr_ls.remove(curr_ls.size()-1);
38+
}
39+
}

code/lc31.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public static void nextPermutation(int[] nums) {
2828
//从这个数之后的数中找出第一个比x大的数
2929
int n = nums[ptr];
3030
int ptr2 = ptr;
31-
for(int i=ptr+1; i<nums.length; i++){
31+
for(int i=ptr+1; i<nums.length; i++){ //这不用这么麻烦,后边的数有序的,这可以简化
3232
if( nums[i]>nums[ptr-1] && nums[i]<=n ) {//注意 <= {2,3,1,3,3}
3333
n = nums[i];
3434
ptr2 = i;

code/lc49.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public List<List<String>> groupAnagrams(String[] strs) {
1414
HashMap<String,List<String>> m = new HashMap();
1515
for (int i = 0; i < strs.length ; i++) {
1616
char[] chs = strs[i].toCharArray();
17-
Arrays.sort(chs);
17+
Arrays.sort(chs); //对字符串排序
1818
String key = String.valueOf(chs);
1919
if(m.containsKey(key))
2020
m.get(key).add(strs[i]);

readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,18 @@ LeetCode 指南
8989
| 095 [Java](./code/lc95.java)
9090
| 096 [Java](./code/lc96.java)
9191
| 098 [Java](./code/lc98.java)
92+
| 100 [Java](./code/lc100.java)
9293
| 101 [Java](./code/lc101.java)
9394
| 102 [Java](./code/lc102.java)
9495
| 103 [Java](./code/lc103.java)
9596
| 104 [Java](./code/lc104.java)
9697
| 105 [Java](./code/lc105.java)
9798
| 108 [Java](./code/lc108.java)
99+
| 113 [Java](./code/lc113.java)
98100
| 114 [Java](./code/lc114.java)
99101
| 116 [Java](./code/lc116.java)
100102
| 118 [Java](./code/lc118.java)
103+
| 119 [Java](./code/lc119.java)
101104
| 120 [Java](./code/lc120.java)
102105
| 121 [Java](./code/lc121.java)
103106
| 122 [Java](./code/lc122.java)

0 commit comments

Comments
 (0)