题解 | #四数之和#

四数之和

https://www.nowcoder.com/practice/d5b74806fa104518903884e182f47e35

package main
import "sort"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @param target int整型 
 * @return int整型二维数组
*/
func fournumber( nums []int ,  target int ) [][]int {
    ans:=[][]int{}
    sort.Ints(nums)
    for i:=0;i<len(nums);i++{
        if i>0&&nums[i]==nums[i-1]{
            continue
        }
        for j:=i+1;j<len(nums);j++{
            if j>i+1&&nums[j]==nums[j-1]{
                continue
            }
            l,r:=j+1,len(nums)-1
            for l<r{
                sum:=nums[i]+nums[j]+nums[l]+nums[r]
                if sum==target{
                    ans=append(ans,[]int{nums[i],nums[j],nums[l],nums[r]})
                    for l<r&&nums[l]==nums[l+1]{
                        l++
                    }
                    for l<r&&nums[r]==nums[r-1]{
                        r--
                    }
                    l++
                    r--
                }else if sum>target{
                    r--
                }else{
                    l++
                }
            }
        }
    }
    return ans
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务