题目链接:LeetCode 18. 四数之和
题意:
本题思路与LeetCode 15. 三数之和思路完全一样,只是多加了一层for循环
解题思路:
完整代码如下:
func fourSum(nums []int, target int) [][]int {
// 四元组,四个元素都不相同 ,并且结果要去重
var res [][]int
sort.Ints(nums)
// a < b < c < d
for a:=0;a<len(nums);a++{
if a > 0 && nums[a] == nums[a-1]{
continue
}
for b:=a+1 ;b < len(nums);b++{
if b > a+1 && nums[b] == nums[b-1]{
continue
}
for c,d:= b + 1,len(nums)-1;c < d; c++{
if c > b+1 && nums[c] == nums[c-1]{
continue
}
for c < d-1 && nums[a] + nums[b] + nums[c] + nums[d-1] >= target{
d--
}
if nums[a] + nums[b] + nums[c] + nums[d] == target{
res=append(res,[]int{nums[a] , nums[b] , nums[c] , nums[d]})
}
}
}
}
return res
}
标签:四数,nums,int,18,&&,res,LeetCode
From: https://www.cnblogs.com/lxing-go/p/17380145.html