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

松原做网站公司/百度竞价登录入口

松原做网站公司,百度竞价登录入口,做网站注册35类还是42,请人做网站需要问哪些问题一 题目描述 给你一个长度为 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.whsansanxincailiao.cn/news/32031714.html

相关文章:

  • 手机网站建设视频/百度下载并安装
  • 交互式网站开发技术包括/百度登录个人中心官网
  • 郑州网站建设到诺然/seo体系百科
  • 如何做网站搜索引擎优化/备案查询站长之家
  • 网站建设公司创意/搜狗登录入口
  • 个人网站备案地址/今天最新的新闻头条
  • 云南专业做网站多少钱/河南网站建设制作
  • 青岛做一个网站多少钱/今天的最新新闻内容
  • 如何创建网站推广产品/三只松鼠搜索引擎推广
  • seo和sem是什么意思/舆情优化公司
  • 烟台seo网站推广费用/站群seo
  • 做网站还有市场吗/免费建设个人网站
  • 网站建设的公司做销售/互联网广告代理商
  • iis 5 如何添加网站/百度股市行情上证指数
  • 哪些网站可以找兼职做室内设计/百度seo关键词排名推荐
  • 上海网站备案核验单状态查询/免费大数据平台
  • 公司网站做推广支出分录/seo免费推广软件
  • 注册公司代理费用/百度网站优化方案
  • 高端网站建设案例/揭阳百度seo公司
  • 电商设计的工作内容/北京优化seo排名优化
  • 工商营业执照网上申报/百度seo新规则
  • 万网网站搬家/百度提升排名
  • 万网免费网站/宁波网站建设推广平台
  • 新网站如何做流量/搜索引擎搜索器
  • 大型网站建设定制开发/金华网站推广
  • wordpress 摘要字数/seo零基础教学视频
  • 成都网站建设科技公司/网站优化是什么意思
  • wordpress会员打赏插件/新站seo外包
  • 怎样做个做外贸的网站/搜索引擎排名中国
  • 蚌埠百度做网站/郑州网站关键词优化公司哪家好