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,一经查实,立即删除!

相关文章

Android官方开发文档Training系列课程中文版:OpenGL绘图之添加动态效果

原文地址&#xff1a;http://android.xsoftlab.net/training/graphics/opengl/motion.html 在屏幕上绘制物体只是OpenGL基础的基础&#xff0c;除了OpenGL&#xff0c;你还可以使用Canvas及Drawable对象做到同样的功能。OpenGL还提供了额外的功能&#xff0c;我们可以使用这些…

领域应用 | 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篇了。这个过程也陆陆续续的坚持了下来。现在回头看刚开始翻译的…

Github星标超3k的推荐系统入门资料合集(含教程、论文、代码、数据)

本篇文章是对公众号《机器学习与推荐算法》历史文章的汇总以及对干货内容的梳理&#xff0c;力争把最全面的干货与最完整的知识体系以最清晰的方式呈现给大家&#xff0c;希望大家能够精准快速地获取到自己想学习的内容&#xff0c;尽到一个干货推荐系统应尽的职责。1 历史文…

Python3中遇到UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in ordinal not in range(128)

原文链接&#xff1a;https://blog.csdn.net/th_num/article/details/80685389 Python3中遇到UnicodeEncodeError: ascii codec cant encode characters in ordinal not in range(128) 但是在windows上面运行代码正常。 原因是因为&#xff1a;linux系统语言导致的。 查看了一下…

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

来源&#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;来自不同领…

Android官方开发文档Training系列课程中文版:动画视图之场景创建

原文地址&#xff1a;http://android.xsoftlab.net/training/transitions/scenes.html 场景存储了View层级的状态&#xff0c;包含所有的View及View的属性。转场框架在启动场景与结束场景之间运行动画。启动场景通常由当前的UI状态自动决定。对于结束场景&#xff0c;转场框架…

不要再问Python了!

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