3Sum Closest leetcode java
来源:互联网 发布:sublime js代码美化 编辑:程序博客网 时间:2024/05/18 02:27
题目:
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.
For example, given array S = {-1 2 1 -4}, and target = 1. The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).
题解:
这道题也是3sum的变体,这里找到的不仅使3sum==target,同时如果没有找到==target的3sum要返回最接近target的值。
于是,这就需要在使用二分查找法时遍历数组的时候,维护一个最接近target值min,这样当完全遍历完数组扔没找到与target相等的3sum时,可以返回维护的这个min值。
这道题比3sum和4sum简单的地方就是不需要判断重复问题,因为题目给我们减轻了去重的压力,have exactly one solution。
即便要求去重,使用之前说过的两个方法:HashSet和挪动指针法,也可以很容易就去重了。这里要注意,判断closest的方法是采取target-sum的绝对值与min相比,很容易理解,无论这个closest是在target左还是右,离target最近的就是最closest的。
实现代码如下:public int threeSumClosest(int[] num, int target) { if(num==null || num.length<3) return 0; int min = Integer.MAX_VALUE; int val = 0; Arrays.sort(num); for(int i = 0; i<=num.length-3;i++){ int low = i+1; int high = num.length-1; while(low<high){ int sum = num[i]+num[low]+num[high]; if(Math.abs(target-sum)<min){ min = Math.abs(target-sum); val = sum; } if(target==sum){ return val; }else if(target>sum){ low++; }else{ high--; } } } return val; }
阅读全文
0 0
- [LeetCode][Java] 3Sum Closest
- LeetCode : 3Sum Closest [java]
- leetcode 3Sum Closest(Java)
- 3Sum Closest leetcode java
- LeetCode – 3Sum Closest (Java)
- 【leetcode-16】3Sum Closest(java)
- (Java)LeetCode-16. 3Sum Closest
- leetcode-java-16. 3Sum Closest
- 3Sum Closest Leetcode Python Java
- Leetcode 16. 3Sum Closest (Medium) (java)
- [LeetCode-Java]16. 3Sum Closest
- [LeetCode] 16. 3Sum Closest java
- LeetCode: 3 Sum Closest
- leetcode - 3 sum closest
- leetcode 3Sum Closest
- LeetCode: 3Sum Closest
- [Leetcode]3Sum Closest
- Leetcode: 3SUM Closest
- 第一次
- ReactNative中将WebView放入ListView中高度自适应
- Mac android原生工程中潜入react-native混合开发项目搭建
- 登录后台逻辑一
- zookeeper第三方库curator即可方便地实现分布式锁
- 3Sum Closest leetcode java
- 机器学习-->深度学习-->RNN,LSTM
- 20170807~20170811
- 杨臻《PPT,要你好看》(第二版)XMind思维导图
- 课工场 “微服私访”项目学习(三)
- 分辨率、像素是什么?有什么关系?
- Cookie技术
- Android基础_内容提供者(九)
- NIO学习笔记(三)——NIO复制文件