LeetCode16 3Sum Closest
来源:互联网 发布:linux ntp命令 编辑:程序博客网 时间:2024/06/09 06:12
LeetCode16题:求取一个数组中,三个数字之和与所给target最接近。
给定的数组为nums,目标值为target
解题思路:
1、首先判断nums个数是否大于三个;若<=3,返回三个数的和即可,否则对nums排序;
2、nums数字大于三个时。首先初始化result为前两个值和最后一个值的和。
3、遍历其中所有的值,并从两边(left、right)向中间靠近。将其三个数的值sum,如果sum大于target,则right减小(因为加的大了),sum小于时,则left增加(sum加的小了),如此循环并更新最近的值result。
package Array;import java.util.Arrays;/** * Created by AllenLee on 2017/12/22. */public class ThreeSumClosest { public int threeSumClosest(int[] nums, int target) { int result = 0; if (nums.length <= 3) { for (int num : nums) { result += num; } return result; } result = nums[0] + nums[1] + nums[nums.length - 1]; Arrays.sort(nums); for (int i = 0; i < nums.length - 2; i++) { int left = i + 1, right = nums.length - 1; while (left < right) { int sum = nums[i] + nums[left] + nums[right]; if (sum > target) right--; else left++; if (Math.abs(sum - target) < Math.abs(result - target)) result = sum; } } return result; }}
阅读全文
0 0
- [LeetCode16]3Sum Closest
- LeetCode16:3Sum Closest
- leetcode16 3Sum Closest
- LeetCode16:3Sum Closest
- LeetCode16. 3Sum Closest
- leetcode16:3Sum Closest
- Leetcode16. 3Sum Closest
- leetcode16~3Sum Closest
- LeetCode16. 3Sum Closest
- leetcode16. 3Sum Closest
- leetcode16. 3Sum Closest
- leetcode16. 3Sum Closest
- LeetCode16 3Sum Closest
- LeetCode16——3Sum Closest
- leetcode16 3Sum Closest(java实现)
- [LeetCode16]3Sum Closed
- 3 Sum & 3 Sum Closest
- 【Leetcode】3Sum Closest (Sum)
- 【Java消息中间件】Java消息中间件( 第4章 使用activemq
- 我在IT职场超15年:从程序员做到副总,送你21个超实用的职场法则!
- poj3281最大流(模板)
- node.js 小功能
- Strange Printer
- LeetCode16 3Sum Closest
- 侵入式容器
- Kotlin设计模式-外观
- 12.22学习计划
- Pycharm中Directory与Package区别及如何导入module
- 编程思想 之「初始化与清理」
- 这只是一个帖子哦
- 树莓派如何设置开机界面
- 实验10、构造无向图(算法7.1),深度和广度遍历 (4学时)