给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] nums[j] nums[k] == 0 请,今天小编就来说说关于数字怎么算加减法比较容易?下面更多详细答案一起来看看吧!
数字怎么算加减法比较容易
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] nums[j] nums[k] == 0 。请
你返回所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
Arrays.sort(nums);
List<List<Integer>> result = new ArrayList<>();
for(int i=0; i < nums.length; i ) {
if(i > 0 && nums[i] == nums[i - 1]) {
continue;
}
int target = - nums[i];
int k = nums.length - 1;
for(int j=i 1; j < nums.length; j ) {
if(j > i 1 && nums[j] == nums[j - 1]) {
continue;
}
while(k > j && nums[j] nums[k] > target) {
k --;
}
if(k == j) {
break;
}
if(nums[j] nums[k] == target) {
result.add(Arrays.asList(nums[i], nums[j], nums[k]));
}
}
}
return result;
}
}