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

可以做卷子的网站广东省建设交易中心网站

可以做卷子的网站,广东省建设交易中心网站,济南网站建设伍际网络,网站开发与网页设计大作业🚀 Swift 实现:三数之和最接近目标值(3Sum Closest) ✨ 前言 在算法学习过程中,经典的“三数之和”系列题目是很多人通往进阶路上的一道坎。今天我们来介绍其中一个非常实用的变种问题 —— 三数之和最接近目标值&am…

🚀 Swift 实现:三数之和最接近目标值(3Sum Closest)

✨ 前言

在算法学习过程中,经典的“三数之和”系列题目是很多人通往进阶路上的一道坎。今天我们来介绍其中一个非常实用的变种问题 —— 三数之和最接近目标值(3Sum Closest),并使用 Swift 实现一个高效的解法。


📌 问题描述

给定一个包含 n 个整数的数组 nums 和一个目标值 target,请从数组中找出 三个整数,使得它们的和最接近 target,返回这个最接近的和。

假设每组输入只存在唯一解

示例:

输入: nums = [-1, 2, 1, -4], target = 1
输出: 2
解释: 最接近目标值 1 的和是 2-1 + 2 + 1 = 2

🔍 解题思路

我们使用经典的 排序 + 双指针 思路,整体时间复杂度为 O(n^2)

  1. 先对数组进行排序,以便后续使用双指针。
  2. 从左到右遍历数组,固定一个数 nums[i]
  3. 使用两个指针 left = i + 1right = n - 1,在剩余的区间中找出两个数,使得三个数之和最接近目标值。
  4. 用一个变量 closestSum 来持续更新当前找到的最接近的和。
  5. 如果三数之和正好等于目标值,直接返回即可。

🧠 边界注意

  • 为防止数组越界,我们确保数组长度至少为 3。
  • 使用 abs(currentSum - target) 与当前最优解进行比较,更新最接近的和。

✅ Swift 实现代码

func threeSumClosest(_ nums: [Int], _ target: Int) -> Int {guard nums.count >= 3 else {fatalError("数组长度必须至少为 3")}let nums = nums.sorted()let n = nums.countvar closestSum = nums[0] + nums[1] + nums[2]for i in 0..<n - 2 {var left = i + 1var right = n - 1while left < right {let currentSum = nums[i] + nums[left] + nums[right]if abs(currentSum - target) < abs(closestSum - target) {closestSum = currentSum}if currentSum < target {left += 1} else if currentSum > target {right -= 1} else {return target  // 最优解,直接返回}}}return closestSum
}

🧪 示例测试

let nums = [-1, 2, 1, -4]
let target = 1
let result = threeSumClosest(nums, target)
print("最接近的三数之和为:\(result)")
// 输出:最接近的三数之和为:2

📈 时间与空间复杂度分析

  • 时间复杂度O(n^2),排序是 O(nlogn),双指针循环是 O(n^2)
  • 空间复杂度O(1),使用了常数额外空间。

🧵 小结

本题不仅锻炼了我们处理数组问题的能力,也考察了我们在排序基础上的双指针技巧。Swift 在处理这类算法问题时,同样可以非常清晰简洁地实现逻辑。

如果你正在准备算法面试,这类“固定一个数 + 双指针”的套路一定要熟练掌握!


💬 欢迎交流

如果你觉得这篇文章对你有帮助,不妨点个赞、收藏或留言交流更多 Swift 算法题目,感谢你的阅读 🙌!

http://www.dtcms.com/wzjs/537453.html

相关文章:

  • wordpress是建站最快的网站地址栏
  • 哪些网站可宣传seo是什么服
  • 如何在自己网站上做支付宝吗学校的二级网站怎么建设
  • 提升了自己的网站网站网页模板
  • 建设一个网站怎么赚钱天津制作公司网站
  • 网站策划书如何做网站推广和网站优化
  • 用vue开发的网站南通技嘉做网站
  • 西安国际网站设计wordpress别名时间戳
  • 网站建设公司比较好的有哪些seo优化排名推广
  • 视频网站程序模板做网站如何使用数据库
  • 东莞网站建设制作服务网站开发过时了
  • 怎么做网站的seo网页制作技术基础教程
  • 企业开源建站系统软件开发管理工具
  • 购物网站二级页面模板撰写网络推广策划案
  • 汽车网站开发怎么恢复网站数据库
  • 公司网站建设哪家好企业网络规划设计与实现
  • 网站开发运营公司绩效提成方案网页制作培训班课程
  • wordpress数字链接出现404优化的意思
  • 昌平网站制作公司品牌网站建设c股j东大蝌蚪
  • 网站建设与管理专业介绍网红营销是什么意思
  • 美食门户网站建设目标低价服装网站建设
  • 濮阳h5建站找公司网站建设
  • 论学院网站建设项目的进度管理大气简洁网站
  • go网站开发dw不会写代码能建立网站吗
  • 建立网站 英语怎么说网站开发 太原
  • 查询网站正规的网站制作哪个好
  • 做二手车按揭的网站wordpress购物网站手机
  • 合肥有哪些做网站的公司品牌建设交流会讲话
  • 郑州知名网站推广网站设置二级域名好吗
  • 花都区建设局网站win7系统做网站服务器系统