3Sum Closest -- LeetCode
来源:互联网 发布:梦貂蝉11神兽进阶数据 编辑:程序博客网 时间:2024/06/08 05:20
原题链接: http://oj.leetcode.com/problems/3sum-closest/
这道题跟3Sum很类似,区别就是要维护一个最小的diff,求出和目标最近的三个和。brute force时间复杂度为O(n^3),优化的解法是使用排序之后夹逼的方法,总的时间复杂度为O(n^2+nlogn)=(n^2),空间复杂度是O(n),代码如下:
public int threeSumClosest(int[] num, int target) { if(num == null || num.length<=2) return Integer.MIN_VALUE; Arrays.sort(num); int closest = num[0]+num[1]+num[2]-target; for(int i=0;i<num.length-2;i++) { int cur = twoSum(num,target-num[i],i+1); if(Math.abs(cur)<Math.abs(closest)) closest = cur; } return target+closest;}private int twoSum(int[] num, int target, int start){ int closest = num[start]+num[start+1]-target; int l = start; int r = num.length-1; while(l<r) { if(num[l]+num[r]==target) return 0; int diff = num[l]+num[r]-target; if(Math.abs(diff)<Math.abs(closest)) closest = diff; if(num[l]+num[r]>target) { r--; } else { l++; } } return closest;}这道题具体的考察点可以参见3Sum,稍微变体一下,其实区别不大。此题更加复杂的扩展是4Sum,请参见4Sum -- LeetCode.
57 0
- LeetCode: 3 Sum Closest
- leetcode - 3 sum closest
- leetcode 3Sum Closest
- LeetCode: 3Sum Closest
- [Leetcode]3Sum Closest
- Leetcode: 3SUM Closest
- LeetCode 3Sum Closest
- [Leetcode] 3Sum Closest
- LeetCode : 3Sum Closest
- LeetCode 3Sum Closest
- [LeetCode] 3Sum Closest
- 【leetcode】3Sum Closest
- [LeetCode]3Sum Closest
- LeetCode-3Sum Closest
- LeetCode:3Sum Closest
- LeetCode | 3Sum Closest
- 【leetcode】3Sum Closest
- Leetcode: 3Sum Closest
- Mac的反编译工具一:otool (objdump工具的OSX对应工具)。
- Transport Stream(1) Beginning
- 黑马程序员_内部类
- 安装 gcc-4.1.2
- ubuntu共享android蓝牙热点
- 3Sum Closest -- LeetCode
- 影响力 读后感
- 397高校毕业设计选题
- 支持向量机推导
- html+css----css布局方式
- linux使用rsync客户端与服务端同步目录进行备份
- ASP.NET(C#)后台安全登陆代码(防XSS攻击\万能密码漏洞)
- 黑马程序员_加强11_基本数据类型的自动拆箱与装箱+享元模式
- 人大云计算检测系统——1000-1002题