Skip to content

Commit 65c10b6

Browse files
update posts
1 parent 173bcf4 commit 65c10b6

File tree

4 files changed

+190
-190
lines changed

4 files changed

+190
-190
lines changed

_posts/2024-06-23-leetcode-105.md

Lines changed: 95 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -20,107 +20,107 @@ toc: true
2020

2121
```java
2222
class Solution {
23-
public TreeNode buildTree(int[] preorder, int[] inorder) {
24-
Map<Integer, Integer> inorderIndexMap = new HashMap<>();
25-
for (int i = 0; i < inorder.length; i++) {
26-
inorderIndexMap.put(inorder[i], i);
27-
}
28-
29-
return buildTree(inorderIndexMap, new Traversal(preorder), new Traversal(inorder));
30-
}
31-
32-
public TreeNode buildTree(Map<Integer, Integer> inorderIndexMap, Traversal preorderTraversal, Traversal inorderTraversal) {
33-
if(preorderTraversal.start > preorderTraversal.end) {
34-
return null;
35-
}
36-
37-
TreeNode treeNode = new TreeNode(preorderTraversal.getFirst());
38-
if(preorderTraversal.start == preorderTraversal.end) {
39-
return treeNode;
40-
}
41-
42-
int rootIndex = inorderIndexMap.get(preorderTraversal.getFirst());
43-
int leftSize = rootIndex - inorderTraversal.start;
44-
treeNode.left = buildTree(
45-
inorderIndexMap,
46-
preorderTraversal.subIterator(preorderTraversal.start + 1, preorderTraversal.start + leftSize),
47-
inorderTraversal.subIterator(inorderTraversal.start, rootIndex - 1)
48-
);
49-
treeNode.right = buildTree(
50-
inorderIndexMap,
51-
preorderTraversal.subIterator(preorderTraversal.start + leftSize + 1, preorderTraversal.end),
52-
inorderTraversal.subIterator(rootIndex + 1, inorderTraversal.end)
53-
);
54-
55-
return treeNode;
56-
}
23+
public TreeNode buildTree(int[] preorder, int[] inorder) {
24+
Map<Integer, Integer> inorderIndexMap = new HashMap<>();
25+
for (int i = 0; i < inorder.length; i++) {
26+
inorderIndexMap.put(inorder[i], i);
27+
}
28+
29+
return buildTree(inorderIndexMap, new Traversal(preorder), new Traversal(inorder));
30+
}
31+
32+
public TreeNode buildTree(Map<Integer, Integer> inorderIndexMap, Traversal preorderTraversal, Traversal inorderTraversal) {
33+
if(preorderTraversal.start > preorderTraversal.end) {
34+
return null;
35+
}
36+
37+
TreeNode treeNode = new TreeNode(preorderTraversal.getFirst());
38+
if(preorderTraversal.start == preorderTraversal.end) {
39+
return treeNode;
40+
}
41+
42+
int rootIndex = inorderIndexMap.get(preorderTraversal.getFirst());
43+
int leftSize = rootIndex - inorderTraversal.start;
44+
treeNode.left = buildTree(
45+
inorderIndexMap,
46+
preorderTraversal.subIterator(preorderTraversal.start + 1, preorderTraversal.start + leftSize),
47+
inorderTraversal.subIterator(inorderTraversal.start, rootIndex - 1)
48+
);
49+
treeNode.right = buildTree(
50+
inorderIndexMap,
51+
preorderTraversal.subIterator(preorderTraversal.start + leftSize + 1, preorderTraversal.end),
52+
inorderTraversal.subIterator(rootIndex + 1, inorderTraversal.end)
53+
);
54+
55+
return treeNode;
56+
}
5757
}
5858

5959
class TreeNode {
60-
int val;
61-
TreeNode left;
62-
TreeNode right;
63-
64-
TreeNode() {
65-
}
66-
67-
TreeNode(int val) {
68-
this.val = val;
69-
}
70-
71-
TreeNode(int val, TreeNode left, TreeNode right) {
72-
this.val = val;
73-
this.left = left;
74-
this.right = right;
75-
}
76-
77-
@Override
78-
public String toString() {
79-
return "{" +
80-
"val=" + val +
81-
", left=" + left +
82-
", right=" + right +
83-
'}';
84-
}
60+
int val;
61+
TreeNode left;
62+
TreeNode right;
63+
64+
TreeNode() {
65+
}
66+
67+
TreeNode(int val) {
68+
this.val = val;
69+
}
70+
71+
TreeNode(int val, TreeNode left, TreeNode right) {
72+
this.val = val;
73+
this.left = left;
74+
this.right = right;
75+
}
76+
77+
@Override
78+
public String toString() {
79+
return "{" +
80+
"val=" + val +
81+
", left=" + left +
82+
", right=" + right +
83+
'}';
84+
}
8585
}
8686

8787
class Traversal {
88-
int[] array;
89-
int start;
90-
int end;
91-
92-
public Traversal(int[] array) {
93-
this.array = array;
94-
this.start = 0;
95-
this.end = array.length - 1;
96-
}
97-
98-
private Traversal(int[] array, int start, int end) {
99-
this.array = array;
100-
this.start = start;
101-
this.end = end;
102-
}
103-
104-
public Traversal subIterator(int start, int end) {
105-
return new Traversal(array, start, end);
106-
}
107-
108-
public int getFirst() {
109-
return array[start];
110-
}
111-
112-
public Traversal(int start, int end) {
113-
this.start = start;
114-
this.end = end;
115-
}
116-
117-
@Override
118-
public String toString() {
119-
return "{" +
120-
"start=" + start +
121-
", end=" + end +
122-
'}';
123-
}
88+
int[] array;
89+
int start;
90+
int end;
91+
92+
public Traversal(int[] array) {
93+
this.array = array;
94+
this.start = 0;
95+
this.end = array.length - 1;
96+
}
97+
98+
private Traversal(int[] array, int start, int end) {
99+
this.array = array;
100+
this.start = start;
101+
this.end = end;
102+
}
103+
104+
public Traversal subIterator(int start, int end) {
105+
return new Traversal(array, start, end);
106+
}
107+
108+
public int getFirst() {
109+
return array[start];
110+
}
111+
112+
public Traversal(int start, int end) {
113+
this.start = start;
114+
this.end = end;
115+
}
116+
117+
@Override
118+
public String toString() {
119+
return "{" +
120+
"start=" + start +
121+
", end=" + end +
122+
'}';
123+
}
124124
}
125125
```
126126

_posts/2024-06-23-leetcode-230.md

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,41 +19,41 @@ toc: true
1919

2020
```java
2121
class Solution {
22-
public int kthSmallest(TreeNode root, int k) {
23-
return dfs(root, new Holder(k));
24-
}
22+
public int kthSmallest(TreeNode root, int k) {
23+
return dfs(root, new Holder(k));
24+
}
2525

26-
public int dfs(TreeNode root, Holder holder) {
27-
if(root.left != null) {
28-
int left = dfs(root.left, holder);
29-
if (left != -1) {
30-
return left;
31-
}
32-
}
33-
holder.decrease();
34-
if (holder.k == 0) {
35-
return root.val;
36-
}
37-
if(root.right != null) {
38-
int right = dfs(root.right, holder);
39-
if (right != -1) {
40-
return right;
41-
}
42-
}
43-
return -1;
44-
}
26+
public int dfs(TreeNode root, Holder holder) {
27+
if(root.left != null) {
28+
int left = dfs(root.left, holder);
29+
if (left != -1) {
30+
return left;
31+
}
32+
}
33+
holder.decrease();
34+
if (holder.k == 0) {
35+
return root.val;
36+
}
37+
if(root.right != null) {
38+
int right = dfs(root.right, holder);
39+
if (right != -1) {
40+
return right;
41+
}
42+
}
43+
return -1;
44+
}
4545
}
4646

4747
class Holder {
48-
int k;
48+
int k;
4949

50-
public Holder(int k) {
51-
this.k = k;
52-
}
50+
public Holder(int k) {
51+
this.k = k;
52+
}
5353

54-
public void decrease() {
55-
this.k = this.k - 1;
56-
}
54+
public void decrease() {
55+
this.k = this.k - 1;
56+
}
5757
}
5858
```
5959

_posts/2024-06-23-leetcode-39.md

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -21,67 +21,67 @@ toc: true
2121

2222
```java
2323
class Solution {
24-
public List<List<Integer>> combinationSum(int[] candidates, int target) {
24+
public List<List<Integer>> combinationSum(int[] candidates, int target) {
2525
Arrays.sort(candidates);
26-
List<List<Integer>> result = new ArrayList<>();
26+
List<List<Integer>> result = new ArrayList<>();
2727

28-
Queue<Holder> queue = new LinkedList<>();
29-
queue.offer(new Holder(target));
28+
Queue<Holder> queue = new LinkedList<>();
29+
queue.offer(new Holder(target));
3030

31-
while (!queue.isEmpty()) {
32-
Holder holder = queue.poll();
33-
int lastInput = !holder.combination.isEmpty() ? holder.combination.get(holder.combination.size() - 1) : 0;
34-
int left = holder.left;
35-
if (left == 0) {
36-
result.add(holder.combination);
37-
continue;
38-
}
31+
while (!queue.isEmpty()) {
32+
Holder holder = queue.poll();
33+
int lastInput = !holder.combination.isEmpty() ? holder.combination.get(holder.combination.size() - 1) : 0;
34+
int left = holder.left;
35+
if (left == 0) {
36+
result.add(holder.combination);
37+
continue;
38+
}
3939

40-
for (int candidate : candidates) {
40+
for (int candidate : candidates) {
4141
if (candidate < lastInput) {
4242
continue;
4343
}
4444

45-
if (left - candidate >= 0) {
46-
queue.add(holder.next(candidate));
47-
} else {
48-
break;
49-
}
50-
}
51-
}
45+
if (left - candidate >= 0) {
46+
queue.add(holder.next(candidate));
47+
} else {
48+
break;
49+
}
50+
}
51+
}
5252

53-
return result;
54-
}
53+
return result;
54+
}
5555
}
5656

5757
class Holder {
58-
int left;
59-
List<Integer> combination;
60-
61-
public Holder(int left) {
62-
this.left = left;
63-
this.combination = new ArrayList<>();
64-
}
65-
66-
private Holder(int left, List<Integer> combination) {
67-
this.left = left;
68-
this.combination = combination;
69-
}
70-
71-
public Holder next(int minus) {
72-
List<Integer> combinedList = new ArrayList<>(this.combination.size() + 1);
73-
combinedList.addAll(this.combination);
74-
combinedList.add(minus);
75-
return new Holder(this.left - minus, combinedList);
76-
}
77-
78-
@Override
79-
public String toString() {
80-
return "{" +
81-
"left=" + left +
82-
", combination=" + combination +
83-
'}';
84-
}
58+
int left;
59+
List<Integer> combination;
60+
61+
public Holder(int left) {
62+
this.left = left;
63+
this.combination = new ArrayList<>();
64+
}
65+
66+
private Holder(int left, List<Integer> combination) {
67+
this.left = left;
68+
this.combination = combination;
69+
}
70+
71+
public Holder next(int minus) {
72+
List<Integer> combinedList = new ArrayList<>(this.combination.size() + 1);
73+
combinedList.addAll(this.combination);
74+
combinedList.add(minus);
75+
return new Holder(this.left - minus, combinedList);
76+
}
77+
78+
@Override
79+
public String toString() {
80+
return "{" +
81+
"left=" + left +
82+
", combination=" + combination +
83+
'}';
84+
}
8585
}
8686
```
8787

0 commit comments

Comments
 (0)