Skip to content

Commit 3700b4e

Browse files
solves 3 sum closest
1 parent 4ac058a commit 3700b4e

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
| 13 | [Roman To Integer](https://leetcode.com/problems/roman-to-integer/) | [![Java](assets/java.png)](src/RomanToInteger.java) [![Python](assets/python.png)](python/roman_to_integer.py) | [![java-yt](assets/java-yt.png)](https://youtu.be/BCue_mO_81A) [![python-yt](assets/python-yt.png)](https://youtu.be/8h_yGTNvKMA) |
2525
| 14 | [Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix/) | [![Java](assets/java.png)](src/LongestCommonPrefix.java) [![Python](assets/python.png)](python/longest_common_prefix.py) | |
2626
| 15 | [3Sum](https://leetcode.com/problems/3sum) | [![Java](assets/java.png)](src/ThreeSum.java) | |
27+
| 16 | [3Sum Closest](https://leetcode.com/problems/3sum-closest) | [![Java](assets/java.png)](src/ThreeSumClosest.java) | |
2728
| 20 | [ValidParentheses](https://leetcode.com/problems/valid-parentheses/) | [![Java](assets/java.png)](src/ValidParentheses.java) [![Python](assets/python.png)](python/valid_parentheses.py) | |
2829
| 21 | [Merge 2 Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/) | [![Java](assets/java.png)](src/Merge2SortedLists.java) [![Python](assets/python.png)](python/merge_2_sorted_lists.py) | |
2930
| 26 | [Remove Duplicates From Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/) | [![Java](assets/java.png)](src/RemoveDuplicatesFromSortedArray.java) [![Python](assets/python.png)](python/remove_duplicates_from_sorted_array.py) | |

src/ThreeSumClosest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// https://leetcode.com/problems/3sum-closest
2+
// T: O(n^2)
3+
// S: O(1)
4+
5+
import java.util.Arrays;
6+
7+
public class ThreeSumClosest {
8+
public static void main(String[] args) {
9+
System.out.println(threeSumClosest(new int[] {0, 2, 1, -3}, 1));
10+
}
11+
12+
public static int threeSumClosest(int[] nums, int target) {
13+
Arrays.sort(nums);
14+
int closestSum = nums[0] + nums[1] + nums[2];
15+
for (int i = 0 ; i < nums.length - 2 ; i++) {
16+
for (int j = i + 1, k = nums.length - 1 ; j < k ; ) {
17+
int sum = nums[i] + nums[j] + nums[k];
18+
if (sum == target) return sum;
19+
if (Math.abs(sum - target) < Math.abs(closestSum - target)) {
20+
closestSum = sum;
21+
}
22+
else if (sum > target) k--;
23+
else j++;
24+
}
25+
}
26+
return closestSum;
27+
}
28+
}

0 commit comments

Comments
 (0)