minhtrangfather
New member
### Giải pháp 3Sum LeetCode trong Java
Đưa ra một loạt các số nguyên num, tìm tất cả các bộ ba chỉ số (i, j, k) sao cho i <j <k và nums + nums [j] + nums [k] == 0.
**Ví dụ:**
`` `
Đầu vào: nums = [-1, 0, 1, 2, -1, -4]
Đầu ra: [[-1, 0, 1], [-1, -1, 2]]]
`` `
**Giải pháp:**
`` `java
Giải pháp lớp {
Danh sách công khai <Danh sách <Integer >> threesum (int [] nums) {
Danh sách <Danh sách <Integer >> ANS = new ArrayList <> ();
Mảng.sort (nums);
for (int i = 0; i <nums.length - 2; i ++) {
if (i> 0 && nums == nums [i - 1]) {
Tiếp tục;
}
int j = i + 1;
int k = nums.length - 1;
while (j <k) {
if (nums [j] + nums [k] == -nums ) {
ans.add (mảng.aslist (nums , nums [j], nums [k]));
J ++;
K--;
while (j <k && nums [j] == nums [j - 1]) {
J ++;
}
while (j <k && nums [k] == nums [k + 1]) {
K--;
}
} if if (nums [j] + nums [k] <-nums ) {
J ++;
} khác {
K--;
}
}
}
trả lại ans;
}
}
`` `
** Độ phức tạp về thời gian: ** O (n^2)
** Độ phức tạp không gian: ** O
** Hashtags: **
* #3SUM
* #leetcode
* #Java
* #mảng
* #Tìm kiếm nhị phân
=======================================
### 3Sum Leetcode Solution in Java
Given an array of integers nums, find all triplets of indices (i, j, k) such that i < j < k and nums + nums[j] + nums[k] == 0.
**Example:**
```
Input: nums = [-1, 0, 1, 2, -1, -4]
Output: [[-1, 0, 1], [-1, -1, 2]]
```
**Solution:**
```java
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> ans = new ArrayList<>();
Arrays.sort(nums);
for (int i = 0; i < nums.length - 2; i++) {
if (i > 0 && nums == nums[i - 1]) {
continue;
}
int j = i + 1;
int k = nums.length - 1;
while (j < k) {
if (nums[j] + nums[k] == -nums) {
ans.add(Arrays.asList(nums, nums[j], nums[k]));
j++;
k--;
while (j < k && nums[j] == nums[j - 1]) {
j++;
}
while (j < k && nums[k] == nums[k + 1]) {
k--;
}
} else if (nums[j] + nums[k] < -nums) {
j++;
} else {
k--;
}
}
}
return ans;
}
}
```
**Time Complexity:** O(n^2)
**Space Complexity:** O
**Hashtags:**
* #3SUM
* #leetcode
* #Java
* #array
* #binary-search
Đưa ra một loạt các số nguyên num, tìm tất cả các bộ ba chỉ số (i, j, k) sao cho i <j <k và nums + nums [j] + nums [k] == 0.
**Ví dụ:**
`` `
Đầu vào: nums = [-1, 0, 1, 2, -1, -4]
Đầu ra: [[-1, 0, 1], [-1, -1, 2]]]
`` `
**Giải pháp:**
`` `java
Giải pháp lớp {
Danh sách công khai <Danh sách <Integer >> threesum (int [] nums) {
Danh sách <Danh sách <Integer >> ANS = new ArrayList <> ();
Mảng.sort (nums);
for (int i = 0; i <nums.length - 2; i ++) {
if (i> 0 && nums == nums [i - 1]) {
Tiếp tục;
}
int j = i + 1;
int k = nums.length - 1;
while (j <k) {
if (nums [j] + nums [k] == -nums ) {
ans.add (mảng.aslist (nums , nums [j], nums [k]));
J ++;
K--;
while (j <k && nums [j] == nums [j - 1]) {
J ++;
}
while (j <k && nums [k] == nums [k + 1]) {
K--;
}
} if if (nums [j] + nums [k] <-nums ) {
J ++;
} khác {
K--;
}
}
}
trả lại ans;
}
}
`` `
** Độ phức tạp về thời gian: ** O (n^2)
** Độ phức tạp không gian: ** O
** Hashtags: **
* #3SUM
* #leetcode
* #Java
* #mảng
* #Tìm kiếm nhị phân
=======================================
### 3Sum Leetcode Solution in Java
Given an array of integers nums, find all triplets of indices (i, j, k) such that i < j < k and nums + nums[j] + nums[k] == 0.
**Example:**
```
Input: nums = [-1, 0, 1, 2, -1, -4]
Output: [[-1, 0, 1], [-1, -1, 2]]
```
**Solution:**
```java
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> ans = new ArrayList<>();
Arrays.sort(nums);
for (int i = 0; i < nums.length - 2; i++) {
if (i > 0 && nums == nums[i - 1]) {
continue;
}
int j = i + 1;
int k = nums.length - 1;
while (j < k) {
if (nums[j] + nums[k] == -nums) {
ans.add(Arrays.asList(nums, nums[j], nums[k]));
j++;
k--;
while (j < k && nums[j] == nums[j - 1]) {
j++;
}
while (j < k && nums[k] == nums[k + 1]) {
k--;
}
} else if (nums[j] + nums[k] < -nums) {
j++;
} else {
k--;
}
}
}
return ans;
}
}
```
**Time Complexity:** O(n^2)
**Space Complexity:** O
**Hashtags:**
* #3SUM
* #leetcode
* #Java
* #array
* #binary-search