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

网站免费推广的方法专业的网站制作公司

网站免费推广的方法,专业的网站制作公司,百度网盟网站有哪些,仪征市建设局网站题目详情 给你一个长度为n的整数数组 nums 和一个目标值 target,请你从num中选出三个整数,使它们的和与 target最接近。返回这三个数的和。假设每组输入只存在恰好一个解。 示例 1: 输入:nums [-1,2,1,-4], target 1 输出&#…

题目详情

给你一个长度为n的整数数组 nums 和一个目标值 target,请你从num中选出三个整数,使它们的和与 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)。

提示:

  • 3 <= nums.length <= 1000
  • -1000 <= nums[i] <= 1000
  • -10^4 <= target <= 10^4

解题思路

  1. 排序数组:首先对数组进行排序,便于使用双指针技巧。
  2. 初始化最接近和:以数组的前三个元素之和作为初始值。
  3. 外层循环优化
  • 计算当前固定值 nums[i] 的最小可能三数之和(nums[i] + nums[i+1] + nums[i+2])。若该值大于 target,则后续所有组合都会更大,此时更新最接近和后直接返回。
  • 计算当前固定值 nums[i] 的最大可能三数之和(nums[i] + nums[n-2] + nums[n-1])。若该值小于 target,则当前 i 的所有组合都会更小,更新最接近和后跳过当前 i
  1. 双指针搜索
  • 内层使用双指针 leftright 搜索剩余两个数。
  • 若三数之和等于 target,直接返回。
  • 否则更新最接近和,并根据当前和与 target 的大小关系移动指针。
  1. 跳过重复元素:移动指针时跳过重复值,避免重复计算。

代码实现(Java版)

import java.util.Arrays;class Solution {public int threeSumClosest(int[] nums, int target) {Arrays.sort(nums);int n = nums.length;int closestSum = nums[0] + nums[1] + nums[2];for (int i = 0; i < n - 2; i++) {if (i > 0 && nums[i] == nums[i - 1]) continue;// 最小三数之和优化int minSum = nums[i] + nums[i + 1] + nums[i + 2];if (minSum > target) {if (minSum - target < Math.abs(closestSum - target)) {closestSum = minSum;}break;}// 最大三数之和优化int maxSum = nums[i] + nums[n - 2] + nums[n - 1];if (maxSum < target) {if (target - maxSum < Math.abs(closestSum - target)) {closestSum = maxSum;}continue;}int left = i + 1, right = n - 1;while (left < right) {int sum = nums[i] + nums[left] + nums[right];if (sum == target) return target;if (Math.abs(sum - target) < Math.abs(closestSum - target)) {closestSum = sum;}if (sum < target) {left++;while (left < right && nums[left] == nums[left - 1]) left++;} else {right--;while (left < right && nums[right] == nums[right + 1]) right--;}}}return closestSum;}
}

代码说明

  1. 排序Arrays.sort(nums) 将数组排序,为双指针法奠定基础。
  2. 外层循环优化
  • 最小和优化:当 nums[i] + nums[i+1] + nums[i+2] > target 时,后续所有组合的和都会更大,此时更新最接近和后直接结束循环。
  • 最大和优化:当 nums[i] + nums[n-2] + nums[n-1] < target 时,当前 i 的所有组合和都小于 target,更新最接近和后跳过当前 i
  1. 双指针搜索
  • 固定 nums[i],使用双指针在 [i+1, n-1] 区间搜索。
  • 当三数之和等于 target 时直接返回。
  • 否则更新最接近和,并根据当前和与 target 的关系移动指针。
  1. 跳过重复值:移动指针时跳过重复元素,避免重复计算相同组合。
  2. 返回结果:循环结束后返回最接近的和 closestSum
  3. 该算法通过提前终止无效循环(最小和大于 target 或最大和小于 target 的情况),显著减少计算量。时间复杂度为 O(n²),空间复杂度为 O(1)。

提交详情(执行用时、内存消耗)

在这里插入图片描述


文章转载自:

http://2mlcTZ3J.cfybL.cn
http://dO6O7yfj.cfybL.cn
http://1gpZt3Ht.cfybL.cn
http://P5iDojpE.cfybL.cn
http://7ZlLWmUj.cfybL.cn
http://x2p2dvDS.cfybL.cn
http://ZotmsQSn.cfybL.cn
http://dvR9Te7L.cfybL.cn
http://UjwDE67g.cfybL.cn
http://O8Oqw2g4.cfybL.cn
http://13HkqTPg.cfybL.cn
http://K6gUXbRc.cfybL.cn
http://sRn6eiq5.cfybL.cn
http://MgPAA8lZ.cfybL.cn
http://KWj5zaPl.cfybL.cn
http://LITJSkCt.cfybL.cn
http://1k1FpuYv.cfybL.cn
http://otnxZq8j.cfybL.cn
http://mly8X4Ia.cfybL.cn
http://X6KROKkK.cfybL.cn
http://CXxvH19u.cfybL.cn
http://deOJOSIb.cfybL.cn
http://2Bmb0knf.cfybL.cn
http://hEVBjfmt.cfybL.cn
http://RG9wqS02.cfybL.cn
http://QCiD73XW.cfybL.cn
http://yauArjmP.cfybL.cn
http://CaNdViTY.cfybL.cn
http://tHALVTlr.cfybL.cn
http://uCbZ6gtQ.cfybL.cn
http://www.dtcms.com/wzjs/751915.html

相关文章:

  • 简单的网站开发的软件wordpress 部分图打不开
  • 丰都县网站灰色词seo排名
  • 网站建设私活软装设计ppt
  • 国内做网站比较好的公司页面设计属于什么专业
  • 中山制作网站的公司畅销营销型网站建设电话
  • wordpress做网站优点龙岗网站建设培训
  • 建设电子商务网站论文2023年招标公告
  • 山东网站建设网济南品牌网站制作便宜
  • 个人网站可以做什么小程序是怎么赚钱的
  • 做百度推广网站排名怎么开自己的网站
  • 大学生网站建设实训报告在线购物系统的分析与设计
  • 关于网站开发的商业计划书长沙微信网站
  • 网站前端建设需要学会什么wordpress 商品导航菜单
  • 化隆县公司网站建设电子商务网站购物车怎么做
  • 番禺网站建设哪家好淄博市建设工程质量协会网站
  • 安卓手机 做网站中小企业网站模板
  • 网站手机端跳转页面模板做外贸女装有哪些网站有哪些
  • 1网站建设公司网站挂服务器后图片不显示
  • 百度免费网站空间云南建站推广
  • 泰州哪里做网站怀来县网站建设
  • 椒江区建设局网站无锡网站建设工作室
  • 淘宝客导购网站模板html在线记账网站模板
  • 移动互联网网站开发技术网站制作需要多长时间
  • 专业的led网站建设网站如何做原创
  • 企业网站建设哪家专业深圳市场调研公司
  • 外国购物网站设计风格wordpress 登陆id
  • 响应式 企业网站企业每年向工商网站做申报
  • 网站设计方式昆明建设网站公司
  • 电商网站开发工作室河北人社app二维码图片
  • 做360手机网站优化排九江网站建设服务