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

【三数之和】python,排序+双指针

暴力搜索3次方的时间复杂度,大抵超时

遇到不会先排序

排序+双指针

上题解

照做

class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:res=[]n=len(nums)#排序降低复杂度nums.sort()k=0#留两个位置给双指针i,jfor k in range(n-2):if nums[k]>0:break#比较其和前一个元素是否相等,相等则跳过(防止重复)if k>0 and nums[k]==nums[k-1]:continuei=k+1j=n-1while i<j:sum=nums[k]+nums[i]+nums[j]if sum<0:i+=1#同样的结果了while i<j and nums[i]==nums[i-1]:i+=1elif sum>0:j-=1#一样while i<j and nums[j]==nums[j+1]:j-=1else:res.append([nums[k],nums[i],nums[j]])i+=1j-=1#samewhile i<j and nums[i]==nums[i-1]:i+=1while i<j and nums[j]==nums[j+1]:j-=1return res

过 

 

总结:

  1. 数组排序
  2. 固定一个数,开始双指针,第一个指针紧随其后,第二个指针逆序
  3. 剪枝包括与前面的元素相比有没有相同,相同则跳过
  4. 每次移动i/j都可以考虑刚刚那步的剪枝 

 

 

相关文章:

  • MySQL 视图(1)
  • 10、SpringBoot 源码分析 - 自动配置深度分析三
  • Git系列:git init 深入理解及其使用技巧
  • vmware 安装系统提示无法启用3D加速的解决
  • Linux基础 -- perf工具使用及加载符号表
  • c语言:利用随机函数产生20个[120, 834] 之间互不相等的随机数, 并利用选择排序法将其从小到大排序后输出(每行输出5个)
  • 基于双向长短期记忆 Bi-LSTM 对消费者投诉进行多类分类
  • RS8751XF功能和参数介绍及PDF资料
  • springboot webservice接口一个配置文件配置两个接口路径
  • GBase 8s 检查是否是IP且转数值函数
  • 秀某动预约抢票脚本
  • 几个速度比较快的 Linux 开源镜像站
  • kubectl详解
  • Python TCP编程简单实例
  • c语言,java语言,python语言之间有什么区别
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • #Java异常处理
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【Amaple教程】5. 插件
  • chrome扩展demo1-小时钟
  • github从入门到放弃(1)
  • JDK9: 集成 Jshell 和 Maven 项目.
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • MySQL QA
  • PhantomJS 安装
  • win10下安装mysql5.7
  • 和 || 运算
  • 聊一聊前端的监控
  • 免费小说阅读小程序
  • 前嗅ForeSpider教程:创建模板
  • 因为阿里,他们成了“杭漂”
  • 硬币翻转问题,区间操作
  • 【云吞铺子】性能抖动剖析(二)
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $refs 、$nextTic、动态组件、name的使用
  • ( 10 )MySQL中的外键
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (C语言)逆序输出字符串
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (转)创业家杂志:UCWEB天使第一步
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .Net Core和.Net Standard直观理解
  • .net framework 4.0中如何 输出 form 的name属性。
  • .skip() 和 .only() 的使用
  • .stream().map与.stream().flatMap的使用
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [20160807][系统设计的三次迭代]
  • [240607] Jina AI 发布多模态嵌入模型 | PHP 曝新漏洞 | TypeScript 5.5 RC 发布公告