3Sum Closest | Java最短代码实现
2016-03-13 11:06
573 查看
原题链接:16. 3Sum Closest
【思路】
和
3Sum 有点类似,都是先排序O(nlogn),再固定一个数nums[i],找出另两个(O(n2)。不同的是,题目已说明结果只有一个,
1.找到等于target的即可返回
2.用closest记录3Sum和target的绝对值,如果绝对值有减小,则更新sum。循环,最后返回sum即可:
cases passed. Runtime: 14 ms Your runtime beats 44.85% of javasubmissions.
欢迎优化!
【思路】
和
3Sum 有点类似,都是先排序O(nlogn),再固定一个数nums[i],找出另两个(O(n2)。不同的是,题目已说明结果只有一个,
1.找到等于target的即可返回
2.用closest记录3Sum和target的绝对值,如果绝对值有减小,则更新sum。循环,最后返回sum即可:
public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int closest = 0x7fffffff; int result = 0; for (int i = 0; i < nums.length; i++) { if (i > 0 && nums[i] == nums[i - 1]) i++; int left = i + 1; int right = nums.length - 1; while (left < right) { int sum = nums[i] + nums[left] + nums[right]; closest = Math.min(Math.abs(sum - target), closest); if (closest == Math.abs(sum - target)) result = sum; if (sum == target) return target; else if (sum < target) left++; else right--; } } return result; }120 / 120 test
cases passed. Runtime: 14 ms Your runtime beats 44.85% of javasubmissions.
欢迎优化!
相关文章推荐
- [JAVA · 初级]:10.如何更好的理解多态
- Leetcode:223. Rectangle Area(JAVA)
- spring 中属性scope 的prototype(有状态)和singleton(无状态)
- 【JAVA】38、构造方法的定义
- 超轻量级DI容器框架Google Guice与Spring框架的区别教程详解及其demo代码片段分享
- 排序算法总结 java实现
- 常见排序算法的Java实现
- java排序
- 使用java中replaceAll方法替换字符串中的反斜杠
- Java系统调优:内存管理与垃圾回收
- JavaSE知识集锦(1)深拷贝与浅拷贝
- java设计模式——结构型之门面模式
- java单点登录系统CAS的简单使用
- JDK动态代理和CGLiB动态代理
- JAVA HASHMAP 如何用
- java中HashMap详解
- [Java] i++与++i的区别(后缀++与前缀++)
- Java运算符优先级
- Ubuntu 15.10 程序“java”已包含在下列软件包中,安装jdk1.8.73
- Java编程规范