当前位置: 首页 > news >正文

正能量不良网站推荐2020淘宝网页版本

正能量不良网站推荐2020,淘宝网页版本,django 网站开发,百度竞价托管公司一 题目描述 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解 示例 1: 输入:nums [-1,2,1,-4], target 1 输出&…

一 题目描述

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。

返回这三个数的和。

假定每组输入只存在恰好一个解

示例 1:

输入:nums = [-1,2,1,-4], target = 1
输出:2
解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。

示例 2:

输入:nums = [0,0,0], target = 1
输出:0
解释:与 target 最接近的和是 0(0 + 0 + 0 = 0)。

二.问题思路

解决最接近的三数之和问题,核心思路是排序 + 双指针法,具体步骤如下

1.排序数组

  • 目的:将数组升序排列,便于后续双指针操作。

  • 作用:排序后,可以通过固定一个数,利用双指针在剩余区间内高效寻找另外两个数

2.初始化最近值

  • 初始化 closest_sum 为前三个元素的和,min_distance 为当前和与目标值的距离绝对值。

  • 意义:为后续比较提供初始基准值。

3.遍历固定第一个数

  • 外层循环:遍历数组,固定第一个数 nums[i]

    • 跳过重复值:若 i > 0 且 nums[i] == nums[i-1],跳过当前 i,避免重复计算相同三元组(优化点)。

    • 双指针初始化left = i + 1right = n - 1,在区间 [i+1, n-1] 内寻找另外两个数。

 4.双指针寻找目标值

  • 内层循环:当 left < right 时:

    1. 计算当前三数之和 sum = nums[i] + nums[left] + nums[right]

    2. 更新最近值:若当前和与目标的距离 distance 小于 min_distance,则更新 closest_sum 和 min_distance

    3. 调整指针

      • 若 sum < target:左指针右移(增大和)。

      • 若 sum > target:右指针左移(减小和)。

      • 若 sum == target:直接返回 sum(此时距离为 0,已最优)。

5.终止条件与返回
  • 循环结束:遍历所有可能的 i 后,返回 closest_sum

  • 提前终止:若某次 sum == target,直接返回结果,无需继续计算。

 代码实现

class Solution {
public:int threeSumClosest(vector<int>& nums, int target) {sort(nums.begin(), nums.end());int n = nums.size();int closest_sum= nums[0] + nums[1] + nums[2];int min_distance = abs(target - closest_sum);for (int i = 0;i < n - 2;i++){if (i > 0 && nums[i] == nums[i - 1]) continue;int left = i + 1, right = n - 1;while (left < right){int sum= nums[i] + nums[left] + nums[right];int distance = abs(target - sum);if (distance < min_distance){min_distance = distance;closest_sum = sum;}if (sum < target) {left++; // 需要更大的数,左指针右移}else if (sum > target) {right--; // 需要更小的数,右指针左移}else {return sum; // 和等于目标值,直接返回}}}return closest_sum;}
};

http://www.dtcms.com/a/436610.html

相关文章:

  • 网站运营一个月多少钱昆山做网站的那家好
  • 个人网站设计模板下载阿联酋网站后缀
  • 北京网站建设问问q778925409霸屏seo优化搜索推广
  • 多语言网站开发家装公司名字
  • 织梦手机网站如何调用网站是广西住房和城乡建设厅
  • 南开集团网站建设石家庄微网站建设公司哪家好
  • 同城网站玩具网站设计
  • 网站开发公司招聘技术人员小学英语教师做应用相关网站
  • 域名做违法网站外贸柒夜网站建设
  • 广州高端网站设计衡阳公司网站建设
  • 这2个代码 找做网站的 安装一下国外产品展示网站源码
  • 中国国内网站建设哪家强百度电视剧风云榜
  • 网站用户黏度找人做网站上线后被投诉侵权
  • 昌吉建设网站wordpress建设网站
  • 中国最厉害的营销策划公司郑州seo课程
  • 网站开发的技术风险wordpress删掉不需要的
  • 建设集团网站报告书做网站通过什么赚钱
  • 免费h5网站模版青岛搜索推广排名
  • 做微整去那个网站找好的医院吴中区网站建设技术
  • 陕西建设交通集团招聘信息网站具有价值的专业网站建设平台
  • Product Hunt 每日热榜 | 2025-10-02
  • 橙色 网站百度全静态生成技术
  • 做图像网站网站建设需要注意
  • 太原网站建设司遵义公共资源交易中心官网
  • WordPress通讯目录国外网站谷歌seo推广
  • 城镇建设部网站网站门户
  • 网站推广手段有哪些建设网站的流程
  • 织梦网站地图修改百度快照下载
  • PCB学习——STM32F103VET6-STM32命名规则,电源电路相关
  • 网站图片添加alt标签上海网用软件有限公司