Leetcode016 3Sum Closest
2016-03-11 20:12
344 查看
public class S016 { //借鉴S015的思想,只是稍微有点慢 public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int result = nums[0]+nums[1]+nums[nums.length-1]; for(int i =0;i<nums.length;i++){ if(i>0&&nums[i]==nums[i-1]) continue; int left = i+1; int right = nums.length-1; while(left<right){ if(nums[i]+nums[left]+nums[right]==target){ result = nums[i]+nums[left]+nums[right]; return result;//如果只是break;会产生不必要的for循环,影响速度 }else{ result = Math.abs(nums[i]+nums[left]+nums[right]-target)<Math.abs(result-target)? (nums[i]+nums[left]+nums[right]):result; if(nums[i]+nums[left]+nums[right]<target){ left++; while(left<right&&nums[left] == nums[left-1]){ left++; } }else if(nums[i]+nums[left]+nums[right]>target){ right--; while(left<right&&nums[right] == nums[right+1]){ right--; } } } } } return result; } }
相关文章推荐
- 实验0 了解和熟悉操作系统
- spring web flow起步
- poj3061
- 欢迎使用CSDN-markdown编辑器
- 查看表空间及数据库相关信息
- TCP/IP 体系结构
- Android按钮强制大写问题
- CSS左侧固定宽 右侧自适应(兼容所有浏览器)
- POJ3692 Kindergarten 【最大独立集】
- 快速排序之c++实现
- java web的路径问题
- Android音频编解码和混音实现
- 操作系统可变分区用C语言实现按首次适应算法分配内存
- 最小二乘法
- 推荐net开发cad入门阅读代码片段
- [其他] 欢迎大家来到蓝田田长的技术博客
- 复利计算1.0~2.0~3.0~4.0-软件工程(网页版)
- nyoj 会场安排问题 贪心
- JavaScript学习(一)——调用内部js和外部js的例子
- 程序开发中的命名规格_参考