当前位置: 首页 > 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/807261.html

相关文章:

  • perl 网站开发电商首页设计
  • 公司网站建设需要咨询什么问题网站制作基本规则
  • 注册域名后如何建立网站怎么做简单地网站
  • 广州网站建设360网站优化网站建设与开发大作业
  • 东莞整站优化排名新闻源
  • html做网站心得平面设计正规培训机构
  • 云南建设企业网站网站建设课程考核方案
  • 国内最新新闻资讯云南专业网站优化
  • 马鞍山市重点工程建设管理局网站广东建设人才网站
  • 四川建设监理协会网站php商城网站建设多少钱
  • 网站建设定金做什么会计分录更改wordpress后台登录地址
  • 网站建设与app开发一个公司可以备案两个网站
  • 天津建站管理系统信息网站运营策略
  • 网站建设域名注册免费j建设局域网网站
  • h5素材做多的网站国外服务器网站
  • 邯郸住房和城乡建设局网站网站建设的案例教程视频
  • 全国做网站排行百度助手app免费下载
  • 网站开发人员需要去做原型吗app手机网站模板
  • 如何做自己的电影网站玉娇龙儿wordpress
  • 营销型网站建设的标准天津建设网站安管人员成绩查询
  • 网站建设三网合一是什么无锡企业网站建设报价
  • 网站建设与管理技术发展技术支持 如皋网站建设
  • 专业APP客户端做网站可以做网页的网站
  • 自己做网站都需要什么缪斯设计公司做设计师发展怎么样
  • mysql数据库建设网站app地图下载安装
  • 郑州做网站齿轮罗湖做网站报价
  • 成都市微信网站建辽源商城网站建设
  • 微网站建设86215网站建设运营协议书
  • 如何做网站推广下拉刘贺稳14湘潭新思维网站
  • 网站建设业务员怎么做中国黄页企业名录