【LeetCode_数组_双指针】16. 最接近的三数之和
admin
2024-05-01 14:22:58

目录

  • 第一次:2022年12月27日10:20:52
    • 解题思路
    • 注意点
    • 代码展示

题目描述

16. 最接近的三数之和

第一次:2022年12月27日10:20:52

解题思路

双指针

详情可查看这个图解:画解算法:16. 最接近的三数之和

注意点

  • 返回值的初始值
    可以直接排序后,选取前三个。从题目中可以看出,数组最少都会有三个数。
  • 最接近的值怎么取舍
    使用数学中的取绝对值
  • 双指针的左移右移
    因为是首先对数组进行排序了,
    所以当前的和 比 期望值大了,肯定是缩小,所以移动的就是右指针,当前的和 比 期望值小了,扩大,移动左指针。

代码展示

class Solution {public int threeSumClosest(int[] nums, int target) {int length = nums.length;// 返回值的初始值int ans = nums[0] + nums[1] + nums[2];Arrays.sort(nums);for (int i = 0; i < length; i++) {int fast = length - 1;int slow = i + 1;while (slow < fast){int sum = nums[i] + nums[slow] + nums[fast];// 最接近的值怎么取舍if(Math.abs(target - sum) < Math.abs(target - ans)){ans = sum;}// 双指针的移动if (sum > target) {fast--;}else if (sum == target){return ans;}else {slow++;}}}return ans;}public static void main(String[] args) {Solution solution = new Solution();int threeSumClosest = solution.threeSumClosest(new int[]{4,0,5,-5,3,3,0,-4,-5}, -2);System.out.println(threeSumClosest);}
}

相关内容

热门资讯

中国六大天花板羊肉汤!各地招牌... 在中国美食版图里,一碗热气腾腾的羊肉汤,是跨越南北的冬日治愈美味。它不止是抚慰味蕾的烟火佳肴,更是扎...
茗聚泉城创新出圈 莒南茶企新品... 茶香汇泉城,创新焕新韵。5月29日,第二十届中国(济南)国际茶产业博览会暨第十四届茶文化节在济南茶叶...
荔枝泡酒怎么泡?内行人教你一步... 荔枝泡酒,作为一种既能满足味蕾又兼具仪式感的果酒制作方式,近年来备受关注。尤其是夏季荔枝大量上市,用...
原创 夏... 步入炎炎夏日,气温一天比一天高,很多长辈朋友都会出现吃不下饭、饭菜没滋味的情况。闷热天气里,油腻的大...