LeetCode 16. 最接近的三数之和(固定左端+滑动窗口)

1. 题目

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).

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

2. 解题

  • 先排序
  • 固定左端的数nums[i],0<=i<=n−3nums[i], 0<= i <= n-3nums[i],0<=i<=n3
  • 然后让start=nums[i+1],end=nums[n−1]start = nums[i+1], end = nums[n-1]start=nums[i+1],end=nums[n1],比较与target的差距,区间向中间收缩
  • 循环,移动左端的 i
    在这里插入图片描述
class Solution {	//C++
public:int threeSumClosest(vector<int>& nums, int target) {sort(nums.begin(), nums.end());int i, s, e, minDiffer = INT_MAX, record;int cursum = nums[0]+nums[1]+nums[2];if(target <= cursum)return cursum;for(int i = 0; i < nums.size()-2; ++i){s = i+1;	//右边区间起点e = nums.size()-1;	//右边区间终点while(s < e){cursum = nums[i]+nums[s]+nums[e];if(abs(cursum-target) < minDiffer){minDiffer = abs(cursum-target);record = cursum;}if(cursum < target)++s;	//收缩区间else if(cursum == target)return cursum;else--e;	//收缩区间}}return record;}
};
class Solution:# py3def threeSumClosest(self, nums: List[int], target: int) -> int:nums.sort()minDiffer, record = float('inf'), 0cursum = nums[0]+nums[1]+nums[2];if target <= cursum:return cursumn = len(nums)cursum = nums[n-3]+nums[n-2]+nums[n-1]if target >= cursum:return cursumfor i in range(n-2):s = i+1e = n-1while s < e:cursum = nums[i]+nums[s]+nums[e]if abs(cursum-target) < minDiffer:minDiffer = abs(cursum-target)record = cursumif cursum < target:s += 1elif cursum == target:return cursumelse:e -= 1return record

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

领域应用 | 2020 年中国知识图谱行业分析报告

本文转载自公众号&#xff1a;艾瑞咨询。 核心摘要&#xff1a;人工智能本质是解决生产力升级的问题&#xff0c;人类生产力可以归类为知识生产力和劳动生产力&#xff0c;人工智能走入产业后&#xff0c;可以分为感知智能、认知智能和行为智能&#xff0c;后两者更与生产力相…

Category 特性在 iOS 组件化中的应用与管控

背景 iOS Category功能简介 Category 是 Objective-C 2.0之后添加的语言特性。 Category 就是对装饰模式的一种具体实现。它的主要作用是在不改变原有类的前提下&#xff0c;动态地给这个类添加一些方法。在 Objective-C&#xff08;iOS 的开发语言&#xff0c;下文用 OC 代替&…

OpenAI亲谈:我们眼中的GPT-3、大规模语言模型的局限性与出路在哪

编译 | 陈彩娴、青暮编辑 | 陈大鑫近日&#xff0c;OpenAI政策研究主管Miles Brundage在推特上分享了一篇新论文&#xff0c;论文内容是对一个GPT-3研讨会的总结。2020年10月14日&#xff0c;来自OpenAI、斯坦福大学HAI研究所等机构的研究人员召集在一起&#xff0c;讨论围绕GP…

Android官方开发文档Training系列课程中文版:OpenGL绘图之响应触摸事件

原文地址&#xff1a;http://android.xsoftlab.net/training/graphics/opengl/touch.html 使图形按照程序设计的轨迹旋转对OpenGL来说还是不能发挥出它应有的实力。但要是能使用户可以直接控制图形的旋转&#xff0c;这才是OpenGL的真正目的。它真正的关键所在就是使程序可以交…

LeetCode 26. 删除排序数组中的重复项

1. 题目 给定一个排序数组&#xff0c;你需要在原地删除重复出现的元素&#xff0c;使得每个元素只出现一次&#xff0c;返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 来源&#xff1a;力扣&…

论文浅尝 | Data Intelligence - 多篇语义资源论文

本文转载自公众号&#xff1a;DI数据智能 。 编者按&#xff1a;Data Intelligence最新发表一组语义资源论文&#xff0c;包括世界著名语义网技术专家荷兰阿姆斯特丹自由大学计算机科学系Frank van Harmelen教授团队的Constructing and Cleaning Identity Graphs in the LOD C…

人物志 | 美团首席科学家夏华夏:不断突破边界的程序人生

“成长没有什么秘笈&#xff0c;就是坚持不断地一点点突破自己的边界就好。” 这是美团首席科学家、无人配送部总经理夏华夏在刚刚过去的“1024 程序员节”时送给技术同行的一句话。 这也是夏华夏自己的人生写照&#xff1a;从没摸过计算机的山东高考状元到清华计算机系的学霸&…

我的《Android官方开发文档Training系列课程中文版》的中期翻译计划

从2016年的3月份开始到现在&#xff0c;对于Android文档的翻译已经进行了两个月的时间。虽然数量还不及总篇数的一半&#xff0c;但是经过一番整理&#xff0c;发现翻译的文章还不少&#xff0c;目前为止已经有56篇了。这个过程也陆陆续续的坚持了下来。现在回头看刚开始翻译的…

论文浅尝 | 低资源文本风格迁移数据集

来源&#xff1a;AAAI2020论文链接&#xff1a;https://www.msra.cn/wp-content/uploads/2020/01/A-Dataset-for-Low-Resource-Stylized-Sequence-to-Sequence-Generation.pdf概述&#xff1a;低资源样式化的序列到序列&#xff08;S2S&#xff09;生成是高需求的。但由于数据集…

Android官方开发文档Training系列课程中文版:动画视图之转场框架介绍

原文地址&#xff1a;http://android.xsoftlab.net/training/transitions/index.html 引言 Activity所呈现的UI经常会由用户的输入或者其它事件而发生变化。比如&#xff0c;一个含有输入框的Activity&#xff0c;在用户输入要查找的关键字之后&#xff0c;这个输入框就会隐藏…

机器学习竞赛中,为什么GBDT往往比深度学习更有效?

在过去的几年里&#xff0c;大多数的推荐算法都是基于深度学习&#xff08;DL&#xff09;方法。遵循我们领域的一般研究实践&#xff0c;这些工作证明了新的DL方法在离线实验中优于其他不基于深度学习的模型。然而&#xff0c;在与推荐相关的机器学习竞赛中&#xff08;如与年…

2020年算法工程师技术路线图

原文链接&#xff1a;https://cloud.tencent.com/developer/article/1689082 重磅干货&#xff0c;第一时间送达作者丨字节知乎来源丨https://zhuanlan.zhihu.com/p/192633890极市导读算法工程师如何获得技术方面的成长&#xff1f;本文从工程基础、算法基础、算法工程交叉、工…

浅谈大型互联网企业入侵检测及防护策略

前言 如何知道自己所在的企业是否被入侵了&#xff1f;是没人来“黑”&#xff0c;还是因自身感知能力不足&#xff0c;暂时还无法发现&#xff1f;其实&#xff0c;入侵检测是每一个大型互联网企业都要面对的严峻挑战。价值越高的公司&#xff0c;面临入侵的威胁也越大&#x…

征稿 | Big Data Research 专刊(影响因子 2.95)

征稿截止&#xff1a;2020年06月15日近年来&#xff0c;学术界和工业界领域都相继构建和发布了越来越多的大规模知识图谱&#xff0c;如DBpedia、YAGO、Freebase、Wikidata、Google knowledge Graph、Microsoft Satori、Facebook Entity Graph等。事实上&#xff0c;来自不同领…

不要再问Python了!

很多小伙伴问如何学习Python&#xff0c;哪里可以找到实战的Python项目&#xff0c;有没有爬虫案例等等。今天给大家分享一份我整理的Python大全学习资料&#xff08;文末有获取方式&#xff09;。话不多说&#xff0c;直接上干货。首先&#xff0c;全部资料目录压缩简单看下里…

CAT 3.0 开源发布,支持多语言客户端及多项性能提升

项目背景 CAT&#xff08;Central Application Tracking&#xff09;&#xff0c;是美团点评基于 Java 开发的一套开源的分布式实时监控系统。美团点评基础架构部希望在基础存储、高性能通信、大规模在线访问、服务治理、实时监控、容器化及集群智能调度等领域提供业界领先的、…

论文浅尝 - TACL2020 | TYDI QA:Google 发表一个多语言的问答语料库

论文笔记整理&#xff1a;吴林娟&#xff0c;天津大学硕士。链接&#xff1a;https://arxiv.org/ftp/arxiv/papers/2003/2003.05002.pdf动机具有挑战性、值得信赖的评估数据可以促进多语言模型的发展&#xff0c;为了鼓励对多语言问答技术的研究&#xff0c;作者提出了数据集Ty…

读博总结的总结:读博的那些事儿

文 | 胡津铭知乎本文已获作者授权&#xff0c;禁止二次转载我时常给同学们推荐各种我看过的优质读博总结与建议文章&#xff0c;今天有了些空&#xff0c;整理一下我看过的优质文章。排名不分先后&#xff0c;想到啥写啥。先推荐英文的资源好了&#xff0c;因为我最推荐的一篇文…

LeetCode 55. 跳跃游戏(贪心)

1. 题目 给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1:输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。 示例…

论文浅尝 - ICLR2020 | Abductive Commonsense Reasoning

论文笔记整理&#xff1a;毕祯&#xff0c;浙江大学硕士&#xff0c;研究方向&#xff1a;知识图谱、自然语言处理。链接&#xff1a;https://arxiv.org/pdf/1908.05739.pdf动机尽管长期以来人们一直认为归因是人们在自然语言界线之间进行解释和阅读的核心&#xff0c;但很少有…