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

四数之和(LeetCode)

题目

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

  • 0 <= a, b, c, d < n
  • abc 和 d 互不相同
  • nums[a] + nums[b] + nums[c] + nums[d] == target

解题

def fourSum(nums, target):nums.sort()  # 首先对数组进行排序result = []  # 用于存储结果的列表for i in range(len(nums) - 3):if i > 0 and nums[i] == nums[i - 1]:# 避免重复的四元组continuefor j in range(i + 1, len(nums) - 2):if j > i + 1 and nums[j] == nums[j - 1]:# 避免重复的四元组continueleft, right = j + 1, len(nums) - 1while left < right:total = nums[i] + nums[j] + nums[left] + nums[right]if total < target:left += 1elif total > target:right -= 1else:# 找到一个和为target的四元组result.append([nums[i], nums[j], nums[left], nums[right]])# 跳过重复的元素while left < right and nums[left] == nums[left + 1]:left += 1while left < right and nums[right] == nums[right - 1]:right -= 1# 移动到下一个不同的元素left += 1right -= 1return result# 示例
nums = [1, 0, -1, 0, -2, 2]
target = 0
print(fourSum(nums, target))

[[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]]

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux 系统框架分析(一)
  • PyTorch深度学习框架
  • 【vue3|第20期】vue3中Vue Router路由器工作模式
  • 编程-设计模式 24:访问者模式
  • 散点图、折线图 -- 通过javascript实现
  • Spring -- 事务
  • Day23--前后端分离项目中如何使用 Vue.js 和 Axios 加载 WebServlet 生成的验证码图片
  • 三高服务是指什么
  • Docker中新建Python容器运行yolov9
  • Intellij Idea使用技巧
  • C# 闭包详解
  • Traceeshark:Wireshark 的开源插件
  • 结队编程(95%用例)D卷(JavaPythonC++Node.jsC语言)
  • lua匹配MAC地址 正则表达式
  • HarmonyOS第五章:组件抽取、构建函数抽取@Builder、构建函数插槽@BuilderParam
  • JavaScript-如何实现克隆(clone)函数
  • 《剑指offer》分解让复杂问题更简单
  • CSS实用技巧干货
  • ES6--对象的扩展
  • LeetCode算法系列_0891_子序列宽度之和
  • Netty源码解析1-Buffer
  • Python学习笔记 字符串拼接
  • scrapy学习之路4(itemloder的使用)
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • SpringBoot 实战 (三) | 配置文件详解
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 工作手记之html2canvas使用概述
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 力扣(LeetCode)21
  • 爬虫模拟登陆 SegmentFault
  • 前端设计模式
  • 前嗅ForeSpider采集配置界面介绍
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 双管齐下,VMware的容器新战略
  • 用Visual Studio开发以太坊智能合约
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​业务双活的数据切换思路设计(下)
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #07【面试问题整理】嵌入式软件工程师
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • ()、[]、{}、(())、[[]]命令替换
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (四)进入MySQL 【事务】
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .gitignore文件使用
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境