当前位置: 首页 > news >正文

[leetcode] 四数之和 M

:::details

给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):

0 <= a, b, c, d < n
a、b、c 和 d 互不相同
nums[a] + nums[b] + nums[c] + nums[d] == target
你可以按 任意顺序 返回答案 。

示例 1:

输入:nums = [1,0,-1,0,-2,2], target = 0
输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]
示例 2:

输入:nums = [2,2,2,2,2], target = 8
输出:[[2,2,2,2]]

提示:

1 <= nums.length <= 200
-109 <= nums[i] <= 109
-109 <= target <= 109

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/4sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

func fourSum(nums []int, target int) [][]int {sort.Ints(nums)// fmt.Println(nums)n := len(nums)res := [][]int{}for i := 0; i < n-3; i++ {/*** 因为target可以是负数,所以不能这么剪枝* 例如 [-5,-4,-3,-2,1,5,4,2] target = -14*/// if nums[i] > target {// 	break// }// 去重 [a,a,x,y]if i > 0 && nums[i] == nums[i-1] {continue}for j := i + 1; j < n-2; j++ {in, jn := nums[i], nums[j]twoSum := in + jnif j > i+1 && nums[j] == nums[j-1] {continue}l, r := j+1, n-1for l < r {ln, rn := nums[l], nums[r]temp := twoSum + ln + rnif temp == target {res = append(res, []int{in, jn, ln, rn})// 去重for l < r && nums[l] == ln {l++}for l < r && nums[r] == rn {r--}} else if temp < target {for l < r && nums[l] == ln {l++}} else {for l < r && nums[r] == rn {r--}}}}}return res
}

:::

相关文章:

  • Linux:不同计算机使用NFS共享资源
  • 关于Selenium的网页对象单元测试的设计模式
  • 深度学习 | ModernTCN模型结构
  • Linux虚拟文件系统
  • Unity关于动画混合树(Blend Tree)的使用
  • Chocolatey
  • 手机上的软件怎么修改网络IP地址
  • 学习笔记13——Spring整合Mybatis、junit、AOP、事务
  • Web前端框架全景:流行选择与技术趋势
  • Java集合/泛型篇----第三篇
  • react中的类(有状态)组件,函数(无状态)组件·示例,对比及组件样式引用方案(附代码)
  • springBoot2.3-基本介绍及入门案例
  • CDH 6.3.2集成flink 1.18 zookeeper版本不匹配Flink-yarn启动失败
  • 通信原理课设(gec6818) 007:语音识别
  • 【算法题】30. 串联所有单词的子串
  • 【刷算法】求1+2+3+...+n
  • 5、React组件事件详解
  • CSS盒模型深入
  • httpie使用详解
  • Java Agent 学习笔记
  • JavaScript设计模式与开发实践系列之策略模式
  • JS笔记四:作用域、变量(函数)提升
  • React系列之 Redux 架构模式
  • springboot_database项目介绍
  • 从0到1:PostCSS 插件开发最佳实践
  • 规范化安全开发 KOA 手脚架
  • 回顾2016
  • 理解在java “”i=i++;”所发生的事情
  • 前端相关框架总和
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 协程
  • 自动记录MySQL慢查询快照脚本
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (02)Hive SQL编译成MapReduce任务的过程
  • (12)Hive调优——count distinct去重优化
  • (16)Reactor的测试——响应式Spring的道法术器
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (一)kafka实战——kafka源码编译启动
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ***监测系统的构建(chkrootkit )
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core 连接数据库,通过数据库生成Modell
  • .net 按比例显示图片的缩略图
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .ui文件相关
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • /etc/motd and /etc/issue
  • /etc/skel 目录作用
  • [ACM] hdu 1201 18岁生日