【leetcode-16】3Sum Closest(java)
来源:互联网 发布:青岛平面美工培训 编辑:程序博客网 时间:2024/06/06 13:46
问题描述:
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).
分析:该题与leetcode-15及其类似,只是将和为0条件改为了与目标值最小。也即减去目标值的差最接近0.
代码如下:348ms,时间复杂度:O(n2)
public class Solution { public int threeSumClosest(int[] nums, int target) { int left,right; Arrays.sort(nums);//排序 int sum = Integer.MAX_VALUE; int minusWithTarget = Integer.MAX_VALUE; int sumWithTriple; int minus; for(int i = 0;i<nums.length;i++){ if(i-1>=0&&nums[i]==nums[i-1]) continue; left = i+1;right = nums.length-1; while(left<right){ sumWithTriple = nums[i]+nums[left]+nums[right]; minus = sumWithTriple-target; if(minus==0){ return sumWithTriple; }else if(minus>0){ if(minus<minusWithTarget){ minusWithTarget = minus; sum = sumWithTriple; } right--; }else { if(-minus<minusWithTarget){ minusWithTarget = -minus; sum=sumWithTriple; } left++; } } } return sum; }}
0 0
- 【leetcode-16】3Sum Closest(java)
- [LeetCode][Java] 3Sum Closest
- LeetCode : 3Sum Closest [java]
- leetcode 3Sum Closest(Java)
- 3Sum Closest leetcode java
- LeetCode 16: 3Sum Closest
- LeetCode 16: 3Sum Closest
- leetcode 16 3Sum Closest
- [leetcode 16] 3Sum Closest
- Leetcode【16】:3Sum Closest
- [leetcode 16] 3Sum Closest
- [Leetcode] 16 - 3Sum Closest
- leetcode.16----------3Sum Closest
- leetcode 16 3Sum Closest
- leetcode-16 3Sum closest
- LeetCode---(16) 3 Sum Closest
- LeetCode 16 - 3Sum Closest
- leetcode 16 -- 3Sum Closest
- poj 3928 Ping pong 树状数组
- 如果你是一个项目组的老大
- leetcode: Count Complete Tree Nodes
- 贪心精讲
- 提高ios开发效率
- 【leetcode-16】3Sum Closest(java)
- Code Forces 557 B. Pasha and Tea(水~)
- js number转string
- windows 安装composer 报SSL错误的解决方式
- 哈弗曼树与哈弗曼编码
- 浅谈MVC
- linux初学(十)之linux文件系统挂载管理
- AccessibilityService辅助类用法(Android 中的另类钩子)
- android反编译