12306网站制作,广告公司简历模板,东莞常平隐贤山庄门票多少钱,网站的图文链接怎么做的题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数#xff0c;使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
例如#xff0c;给定数组 nums [-1#xff0c;2#xff0c;1#xff0c;-4], 和 …题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
例如给定数组 nums [-121-4], 和 target 1.与 target 最接近的三个数的和为 2. (-1 2 1 2).思路和之前文章三数之和https://blog.csdn.net/zhaohong_bo/article/details/88224664类似都是O(n2)双指针。 代码如下
public int threeSumClosest(int[] nums, int target) {if(nums null || nums.length3) {throw new RuntimeException();}Arrays.sort(nums);int sum 0;int resultnums[0]nums[1]nums[2];for(int i0;inums.length-2;i) {int li1, r nums.length-1;while(lr) {sum nums[i]nums[l]nums[r];if(sum target) {return sum;}if(Math.abs(target - sum) Math.abs(target - result)) {result sum;}if(sum target) {while(lr nums[r-1] nums[r])r--;r--;}else if (sum target) {while(lr nums[l1] nums[l])l;l;}}}return result;}