题目

https://leetcode.com/problems/3sum-closest/

题解

方法1:固定 L,双指针找 M、R

时间复杂度 O(n^2),推荐此方法。
证明不会有元素遗漏,详见官方解答:最接近的三数之和

方法2:双指针,固定 L、R,找 M

这种方式不会导致遗漏,因为首尾已经能覆盖所有的组合。
时间复杂度O(n^2*log(n))

class Solution {public int threeSumClosest(int[] nums, int target) {Arrays.sort(nums);int dif = Integer.MAX_VALUE;for (int i = 0; i < nums.length - 2; i++) {for (int j = i + 2; j < nums.length; j++) {int t = target - nums[i] - nums[j];// 固定包含两端点元素,然后在 (L...R) 区间找到与 t 最近的数int L = i + 1;int R = j - 1;int M;while (L + 1 < R) {M = (L + R) / 2;if (nums[M] == t) return target;else if (nums[M] < t) L = M;else R = M;}if (Math.abs(nums[i] + nums[j] + nums[L] - target) < Math.abs(dif))dif = nums[i] + nums[j] + nums[L] - target;if (Math.abs(nums[i] + nums[j] + nums[R] - target) < Math.abs(dif))dif = nums[i] + nums[j] + nums[R] - target; // nums[i] + nums[j] + nums[R] = target + dif}}return target + dif;}
}

leetcode 16. 3Sum Closest | 16. 最接近的三数之和(双指针)相关推荐

  1. python【力扣LeetCode算法题库】16- 最接近的三数之和

    最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答 ...

  2. [Leedcode][JAVA][第16题][最接近的三数之和][双指针][数组]

    [问题描述][中等] 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯 ...

  3. Java实现 LeetCode 16 最接近的三数之和

    16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存 ...

  4. Leetcode算法Java全解答--16. 最接近的三数之和

    Leetcode算法Java全解答–16. 最接近的三数之和 文章目录 Leetcode算法Java全解答--16. 最接近的三数之和 题目 想法 结果 总结 代码 我的答案 暴力破解 滑动列表 大佬 ...

  5. LeetCode 15三数之和16最接近的三数之和

    三数之和(双指针) 题意: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组. 注意 ...

  6. 【算法】3Sum Closest 最接近的三数之和

    文章目录 3Sum Closest 最接近的三数之和 问题描述: 分析 代码 二分 双指针 Tag 3Sum Closest 最接近的三数之和 问题描述: 给你一个长度为 n 的整数数组 nums 和 ...

  7. LeetCode15. 三数之和 16. 最接近的三数之和

    LeetCode15. 三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组 ...

  8. 20200126:(leetcode)三数之和 最接近的三数之和(含图解)

    三数之和 && 最接近的三数之和 题目 基本思路 代码实现 题目 三数之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b ...

  9. Leetcode 最接近的三数之和

    最接近的三数之和 题目描述: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入 ...

最新文章

  1. R语言ggplot2可视化:ggplot2可视化时间序列数据并在末尾数据点添加数值标签(number label)
  2. 六种方法实现CSS三栏布局
  3. 为什么不建议在代码中使用 User 这个单词?
  4. [zz]Linux 下 socket 编程示例
  5. JDBC:java.sql.SQLException: Before start of result set怎么办
  6. mysql解压版下载安装教程_mysql 解压版安装配置方法教程
  7. 【Elasticsearch】使用自适应副本选择改进弹性搜索的响应延迟
  8. TLB的作用及工作原理,如何查看TLB miss?
  9. HDU 3400 Line belt (三分)
  10. poj1273:Drainage Ditches
  11. mac系统用什么linux远程工具,推荐几个Mac/Linux下比较好用的工具
  12. 回首2021,展望2022 | 观成科技步履不停,刻画安全图腾
  13. 一文带你认清运维岗位
  14. “大狼狗加密专家”使用简介
  15. 前有标兵,后有追兵,自热老兵莫小仙胜算还剩几成?
  16. 基于SVM的中文垃圾短信分类
  17. 推荐书单——不定时更新
  18. 猫和老鼠服务器未响应是怎么回事,猫和老鼠为什么进不去
  19. 漏电继电器LLJ-100FG/CT45mm/AC220V
  20. jQuery绑定enter事件

热门文章

  1. 2019ICPC(徐州) - Loli, Yen-Jen, and a cool problem(广义后缀自动机)
  2. 牛客 - 捡金币(思维+二维前缀和+构造)
  3. HDU - 5475 An easy problem(线段树)
  4. std map多线程_SEBR:多线程内存回收方案(1)之ConcurrentHasMap
  5. 计算机python技术基础知识点_python基础--相关计算机基础知识
  6. 彻彻底底了解回调函数
  7. Redis 数据结构 :SDS、链表、字典、跳表、整数集合、压缩列表
  8. Docker常用操作命令(一)
  9. IO中的阻塞、非阻塞、同步、异步概念分析详解
  10. 平均 3000-20000 块不等,有空接外包私活的入群!