Golang | Leetcode Golang题解之第18题四数之和

题目:

题解:

func fourSum(nums []int, target int) (quadruplets [][]int) {
    sort.Ints(nums)
    n := len(nums)
    for i := 0; i < n-3 && nums[i]+nums[i+1]+nums[i+2]+nums[i+3] <= target; i++ {
        if i > 0 && nums[i] == nums[i-1] || nums[i]+nums[n-3]+nums[n-2]+nums[n-1] < target {
            continue
        }
        for j := i + 1; j < n-2 && nums[i]+nums[j]+nums[j+1]+nums[j+2] <= target; j++ {
            if j > i+1 && nums[j] == nums[j-1] || nums[i]+nums[j]+nums[n-2]+nums[n-1] < target {
                continue
            }
            for left, right := j+1, n-1; left < right; {
                if sum := nums[i] + nums[j] + nums[left] + nums[right]; sum == target {
                    quadruplets = append(quadruplets, []int{nums[i], nums[j], nums[left], nums[right]})
                    for left++; left < right && nums[left] == nums[left-1]; left++ {
                    }
                    for right--; left < right && nums[right] == nums[right+1]; right-- {
                    }
                } else if sum < target {
                    left++
                } else {
                    right--
                }
            }
        }
    }
    return
}

相关推荐

  1. 【LeetCode】18. 之和

    2024-04-12 16:14:03       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-12 16:14:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-12 16:14:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-12 16:14:03       87 阅读
  4. Python语言-面向对象

    2024-04-12 16:14:03       96 阅读

热门阅读

  1. Composer安装与配置详解

    2024-04-12 16:14:03       35 阅读
  2. 蓝桥杯省B组复习(小白篇)

    2024-04-12 16:14:03       40 阅读
  3. C++ 的内存安全与效率

    2024-04-12 16:14:03       42 阅读
  4. 力扣经典150题第十八题:整数转罗马数字

    2024-04-12 16:14:03       44 阅读
  5. 《访问者模式(极简c++)》

    2024-04-12 16:14:03       40 阅读
  6. Erlang 常用数据结构实现

    2024-04-12 16:14:03       45 阅读
  7. OTN和波分的区别

    2024-04-12 16:14:03       38 阅读
  8. vue简单使用五(组件的使用)

    2024-04-12 16:14:03       35 阅读
  9. 安卓手机APP开发的实践_点击行为

    2024-04-12 16:14:03       39 阅读
  10. Android - VideoView需要按两次BACK才能退出解决方法

    2024-04-12 16:14:03       41 阅读
  11. Android MediaPlayer 深入分析与实践

    2024-04-12 16:14:03       35 阅读