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 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)

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