这篇文章主要为大家展示了java如何解决最接近的三数之和问题,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“java如何解决最接近的三数之和问题”这篇文章吧。
给定一个包括 n 个整数的数组 nums
和 一个目标值 target
。找出 nums
中的三个整数,使得它们的和与 target
最接近。返回这三个数的和。假定每组输入只存在唯一答案。
例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).
解析:
代码的第二行先对数组进行排序,这个排序是从小到大的,然后第5行有一行num[i]!=num[i-1],他是为了防止重复,举个例子,排序后的数组[-8,-1,-1,-1,2,5]那么他会从第一个-1开始找到[-1,-1,2]这组的和为0,如果没有上面那行代码,那么从第二个-1开始也可以找到[-1,-1,2],所以重复了。然后下面的就比较简单了,三数之和减去其中的一个,剩下的就是其他两个数的和了,因为是排过序的,所以这里是从两头开始往中间找,如果找到直接放到mList中,然后在找,如果小于sum,说明两数之和小了,所以lo++,因为这里是排过序的,从两头往中间找,所以lo只能加不能减,hi只能减不能加。同理当两数之和大于sum的时候,hi--。
1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。
以上就是关于“java如何解决最接近的三数之和问题”的内容,如果该文章对您有所帮助并觉得写得不错,劳请分享给您的好友一起学习新知识,若想了解更多相关知识内容,请多多关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。