18.給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d ,使得 a + b + c + d 的值與 target 相等?找出所有滿足條件且不重複的四元組。
注意:答案中不可以包含重複的四元組。
示例:給定陣列 nums = [1, 0, -1, 0, -2, 2],和 target = 0。
滿足要求的四元組集合為:
[[-1, 0, 0, 1],
[-2, -1, 1, 2],
[-2, 0, 0, 2]
]解法:
public static list> foursum(int nums, int target)
}
}list> lists = new arraylist<>();
hashset> map=new hashset<>(lists);
for(int i=0;itarget)else if(nums[i]+nums[j]+nums[left]+nums[right]list = new arraylist<>();
list.add(nums[i]);
list.add(nums[j]);
list.add(nums[left]);
list.add(nums[right]);
map.add(list);
left++;
right--;
} }}}
lists.addall(map);
return lists;
}public static void main(string args) ;
int target=0;
list> l=foursum(nums,target);
system.out.println(l);
}
LeetCode 四數之和
給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與 target 相等?找出所有滿足條件且不重複的四元組 注意 答案中不可以包含重複的四元組。給定陣列 nums 1,0,1,0,2,2 和 tar...
Leetcode 兩數之和,三數之和,四數之和
兩數之和的思想比較簡單啦 就是 使用乙個map儲存其值,然後將其下標返回即可 三數之和 四數之和的思想比較類似,就是使用雙指標的思想 三數之和的 如下所示 四數之和的 如下 有一些優化 四數之和是在三數之和的基礎上增加了一層迴圈,class solution 獲取當前最大值 int max1 num...
從 兩數之和 四數之和(LeetCode)
兩數則固定乙個元素 指標 三數則固定兩個元素 雙指標 四數則固定乙個元素 三數和。因為提前將陣列排序過,所以若當前和 target,則l 若當前和若當前和 target,則return或儲存。陣列中元素可以重複,但是不能反回相同的答案,如 1,1,1,2 target 3 可以反回,但不能多次返回 ...