2022-12-24

15. 三数之和

func threeSum(nums []int) [][]int {
    sort.Ints(nums)
    var res [][]int
    //保留最大的就行
    dict := make(map[int]int, len(nums))
    for idx, item := range nums {
        dict[item] = idx
    }
    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
            }
            target := 0 - nums[i] - nums[j]
            if item, ok := dict[target]; ok && item > j {
                res = append(res, []int{nums[i], nums[j], nums[item]})
            }
        }
    }
    return res
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容