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

通州网站建设站开发评价房地产网站建设

通州网站建设站开发评价,房地产网站建设,天津 公司网站建设,网络口碑推广公司一 题目描述 给你一个长度为 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/wzjs/5398.html

相关文章:

  • 废料回收网站建设seo企业推广案例
  • 企业管理名词解释关键字排名优化工具
  • 长兴建设局网站企业站seo
  • 北京住房和城乡建设部官方网站宁宁网seo
  • 贵阳网站开发哪家便宜中国网络优化公司排名
  • 龙岗网站关键词优化代理网站排名推广
  • 潍坊网站制作企业站长工具seo综合查询降级
  • 山东省住房和建设厅注册中心网站关键词快速排名平台
  • 做网站需要会编程语言吗引流推广营销
  • 做企业评价的有哪些网站打开百度搜索引擎
  • 知名的设计公司网站站长之家alexa排名
  • 衡阳城乡建设部网站首页网络服务器
  • 做游戏的php网站深圳英文网站推广
  • 南宁太阳能网站建设西安seo培训机构
  • 网站开发需要解决的问题淘宝一个关键词要刷多久
  • 中国建设银行信用卡官网站首页app怎么推广
  • 靖江有哪些做网站的搜索引擎优化的方法
  • 长沙网站备案拍照点网络营销实训总结报告
  • 网站banner代码广告优化师培训
  • 大连地区网站建设南宁百度seo排名
  • 百度收不到我的网站百度建站平台官网
  • 做微信营销网站建设江苏网站建站系统哪家好
  • 上海市住房与城乡建设委员会网站批量优化网站软件
  • 网站备案程序seo网站
  • 建行信用卡网站登录线上营销推广方案有哪些
  • 郑州做网站公司 汉狮网络李飞seo
  • 网站开发公司更换浙江网站建设制作
  • 网站建设指导主流搜索引擎有哪些
  • 虚拟网站建设seo1搬到哪里去了
  • 做公众号app 网站 app上海关键词优化推荐