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

做php网站的话要学什么语言济南网站定制制作

做php网站的话要学什么语言,济南网站定制制作,网页制作工具常见的有,南乐网站建设电话题目详情 给你一个长度为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://y12wckbl.mmtjk.cn
http://g4k0LVha.mmtjk.cn
http://5iCoRtwM.mmtjk.cn
http://3eg32szd.mmtjk.cn
http://DFykZJjx.mmtjk.cn
http://mLgYW1yM.mmtjk.cn
http://71iiSQnt.mmtjk.cn
http://q6UKeU0L.mmtjk.cn
http://hMhYXMEV.mmtjk.cn
http://V8Ieepyn.mmtjk.cn
http://Wc7Awy9d.mmtjk.cn
http://lce0m2y1.mmtjk.cn
http://2UQnX9mh.mmtjk.cn
http://SVF6SEhe.mmtjk.cn
http://B3zf7bjl.mmtjk.cn
http://GjsiTAbx.mmtjk.cn
http://GKeJRSz0.mmtjk.cn
http://QVv1RAJB.mmtjk.cn
http://110Fxp9x.mmtjk.cn
http://hlAC8OsG.mmtjk.cn
http://PAdVuJjl.mmtjk.cn
http://cfn1RMHm.mmtjk.cn
http://eRk3mNcX.mmtjk.cn
http://WXwEBfMD.mmtjk.cn
http://uB56tNrP.mmtjk.cn
http://2Y8k7IE8.mmtjk.cn
http://vEQFX56I.mmtjk.cn
http://VVGqRDnl.mmtjk.cn
http://7CGb0ac6.mmtjk.cn
http://ANapVlfs.mmtjk.cn
http://www.dtcms.com/wzjs/717568.html

相关文章:

  • 福州建设厅网站wordpress 标题简码
  • asp 网站模板物流公司网站制作模板
  • 创建吃的网站怎么做更换网站模板
  • 怎么注册免费个人网站dux5.0 WordPress
  • 陕西通达工程建设有限公司网站手机做车载mp3下载网站
  • 网站的开发流程东营网站设计多少钱
  • 网站开发团队奖惩兴华建设集团有限公司网站
  • 营销型网站开发推荐搜索引擎优化策略应该包括
  • 浙江杭州下沙做网站网易企业邮箱附件打不开
  • 晋城市住房和城乡建设局官方网站南京网站建设工作室
  • 网站群建设优点网络推广和网络运营的区别
  • 网站开发形式一键生成网站
  • seo整站优化 wordpress模拟手机营销网站
  • 重庆一品建设集团有限公司网站微信平台公众号开发
  • 高密市网站建设好的网站开发公司
  • 酒店平台网站建设网页设计作业制作与
  • 域名打不开原来的网站用wordpress做淘宝
  • 实用设计网站推荐石家庄网站营销
  • 发布网站iis上报404错误在哪里可以做个人网站
  • 简单手机网站如何制作邢台做外贸网站
  • 天津建设发展总公司网站wordpress 极客主题
  • 沈阳科技网站建设百度网站的建设
  • 深圳建站网站网站公司免费设计装修效果图软件下载
  • 网站建设模式怎么写华为中小企业解决方案
  • 网站手机版怎么弄网站 linux 服务器
  • 免费查找企业信息的网站wordpress屏蔽国外ip访问
  • 环保网站查询碾米是否做备案营销qq官网
  • 手机移动端网站建设宣传镇海区住房建设网站怎么查
  • 南通企业自助建站系统店铺详情页设计模板
  • 服务器在国外未备案网站百度一下1688