Skip to content

Commit 70c9b19

Browse files
authored
Merge pull request #2181 from ymir0804/main
[ymir0804] WEEK 05 solutions
2 parents 0af250a + 5cb9b97 commit 70c9b19

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

3sum/ymir0804.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import java.util.ArrayList;
2+
import java.util.Arrays;
3+
import java.util.List;
4+
5+
class Solution {
6+
public List<List<Integer>> threeSum(int[] nums) {
7+
List<List<Integer>> answer = new ArrayList<>();
8+
Arrays.sort(nums);
9+
int sum = 0;
10+
11+
for (int i = 0; i < nums.length-2; i++) {
12+
int left = i + 1;
13+
int right = nums.length -1;
14+
if(i > 0 && nums[i-1] == nums[i]) {
15+
continue;
16+
}
17+
while (left < right ) {
18+
sum = nums[i] + nums[left] + nums[right];
19+
if(sum > 0) {
20+
right--;
21+
} else if(sum < 0 ) {
22+
left++;
23+
} else {
24+
answer.add(Arrays.asList(nums[i], nums[left], nums[right]));
25+
while (left < right && nums[left] == nums[left + 1]) {
26+
left++;
27+
}
28+
while (left < right && nums[right] == nums[right - 1]) {
29+
right--;
30+
}
31+
left++;
32+
right--;
33+
}
34+
}
35+
36+
}
37+
return answer;
38+
}
39+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public boolean isValidBST(TreeNode root) {
3+
return isValid(root, Long.MIN_VALUE, Long.MAX_VALUE);
4+
}
5+
public boolean isValid(TreeNode node, long min, long max) {
6+
if (node == null) {
7+
return true;
8+
}
9+
if (node.val <= min || node.val >= max) {
10+
return false;
11+
}
12+
return isValid(node.left, min, node.val) && isValid(node.right, node.val, max);
13+
}
14+
15+
}
16+

0 commit comments

Comments
 (0)