【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);}
}

相关内容

热门资讯

原创 0... 在探索美食的旅途中,我们总会遇到那些让人眼前一亮的食谱,它们不仅能够激发我们的味蕾,更能够带给我们满...
贾冰炒锅要盖子,金晨:找个塑料... 就我第一次见这么做菜的,简单粗暴。这一大捆,就这么放,直接放里面,铺褥子似的就给罩里了。这盖小了吧?...
在茶园里品味春天 ↑ 3月21日,湖北省秭归县茅坪镇中坝子村茶农在茶园采春茶(无人机照片)。新华社发(王罡摄) 春风...
“三茶”统筹引领茶产业高质量发... 2026年是“三茶统筹”提出5周年。 为了深刻领会关于统筹做好茶文化、茶产业、茶科技这篇大文章的重要...
在茶园里品味春天# 春风拂面,茶园新芽勃发,生机盎然。一行行翠绿的茶树铺展在蜿蜒的山坡上,绘就一幅生机盎然的春日画卷。 ...