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

重庆万州网站建设多少钱好享购物官方网站购物

重庆万州网站建设多少钱,好享购物官方网站购物,运城网站开发,网络建设标准文章目录 摘要描述示例 1:示例 2:示例 3: 题解答案(Swift)题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 本文围绕 LeetCode 259 题“较小的三数之和”,通过 Swift 给出两种解法,并…

在这里插入图片描述
在这里插入图片描述

文章目录

    • 摘要
    • 描述
      • 示例 1:
      • 示例 2:
      • 示例 3:
    • 题解答案(Swift)
    • 题解代码分析
    • 示例测试及结果
    • 时间复杂度
    • 空间复杂度
    • 总结

摘要

本文围绕 LeetCode 259 题“较小的三数之和”,通过 Swift 给出两种解法,并结合双指针的优化思路,讲清楚这类“数组 + 条件组合”类题目常见的解决套路。同时附上可运行 Demo,帮助你快速上手并掌握三数问题的变种场景。

描述

题目要求:
给定一个整数数组 nums,以及一个目标值 target,请你统计在所有不同的三元组 (i, j, k) 中,满足:

nums[i] + nums[j] + nums[k] < target 且 i < j < k

的组合总数,并返回这个值。

示例 1:

输入: nums = [-2, 0, 1, 3], target = 2  
输出: 2  
解释: 满足的组合有 (-2, 0, 1)(-2, 0, 3)

示例 2:

输入: nums = [], target = 0  
输出: 0

示例 3:

输入: nums = [0], target = 0  
输出: 0

题解答案(Swift)

这道题其实是“三数和”的一个变种,只不过目标变成了 < target,不再是 == 0。最直观的解法是暴力三重循环,但效率感人,时间复杂度是 O(n³)。这里我们采用排序 + 双指针的思路,降低时间复杂度。

题解代码分析

func threeSumSmaller(_ nums: [Int], _ target: Int) -> Int {let sorted = nums.sorted()var count = 0for i in 0..<sorted.count - 2 {var left = i + 1var right = sorted.count - 1while left < right {let sum = sorted[i] + sorted[left] + sorted[right]if sum < target {// 所有 [left, right) 的组合都满足条件count += right - leftleft += 1} else {right -= 1}}}return count
}

示例测试及结果

print(threeSumSmaller([-2, 0, 1, 3], 2))  // 输出:2
print(threeSumSmaller([], 0))            // 输出:0
print(threeSumSmaller([0], 0))           // 输出:0
print(threeSumSmaller([1, 2, 3, 4, 5], 9)) // 输出:4

解释:

  • 对于 [1,2,3,4,5],满足三数和 < 9 的组合有:
    • 1+2+3=6
    • 1+2+4=7
    • 1+2+5=8
    • 1+3+4=8

共 4 个。

时间复杂度

  • 排序需要 O(n log n)
  • 主循环是 O(n²)

整体时间复杂度:O(n²),比暴力三重循环好很多。

空间复杂度

  • 排序用了额外空间(可能是快排的栈)
  • 主要是常数级别的变量,没有使用额外数组

空间复杂度:O(1)(不考虑排序时的栈开销)

总结

这题其实属于“三数问题”的系列题目,只不过目标条件从 == target 变成了 < target。一旦习惯了排序 + 双指针的套路,这类题目处理起来就非常顺手了。

也建议大家尝试思考下另外两个方向:

  • 如果是 > 怎么办?
  • 如果不能排序怎么办?

另外也可以思考怎么把这类题目封装成通用的“多数和小于目标”的函数,能提升在面试中的发挥空间。


文章转载自:

http://hWJ1ckkj.yrjkz.cn
http://AHzsa9hD.yrjkz.cn
http://vkj5PZsC.yrjkz.cn
http://tM2H3a2i.yrjkz.cn
http://cOpxY6rl.yrjkz.cn
http://9A5WwcdU.yrjkz.cn
http://AR9VWq4x.yrjkz.cn
http://nv9QAnZ9.yrjkz.cn
http://C1aNFHpS.yrjkz.cn
http://8Xgztd6W.yrjkz.cn
http://PCEtBynf.yrjkz.cn
http://lyZbCL6i.yrjkz.cn
http://K3QsR9OJ.yrjkz.cn
http://vMawHg5E.yrjkz.cn
http://Aks2ngGl.yrjkz.cn
http://cYUUM4co.yrjkz.cn
http://CQBtWrUO.yrjkz.cn
http://S8fENnQG.yrjkz.cn
http://je9L3eev.yrjkz.cn
http://jbcMvm8Y.yrjkz.cn
http://X3SU4aRx.yrjkz.cn
http://P02d2Pi7.yrjkz.cn
http://wg9yReJI.yrjkz.cn
http://fEC5Az0I.yrjkz.cn
http://vzV13lQu.yrjkz.cn
http://jDcyJCK6.yrjkz.cn
http://taQweJO4.yrjkz.cn
http://9JvL1GIs.yrjkz.cn
http://0eeFRjKZ.yrjkz.cn
http://Pp6gCr8m.yrjkz.cn
http://www.dtcms.com/wzjs/725227.html

相关文章:

  • 云主机是不是可以搭建无数个网站网页游戏大厅下载
  • 制作网页网站公司wordpress链接亚马逊
  • 携程网网站推广方式沧州网站建设沧州
  • 建设银行亚洲官方网站个人网站备案名字不同
  • 徐州品牌网站建设免费下载百度到桌面
  • 网站风格有哪些类型安徽网站设计费用
  • 营销型网站建设步骤php+mysql网站开发技术与典型案例导航【源代码】
  • nodejs 网站开发模块在线优化网站
  • 网站开发并发处理如何申请一个网站
  • 长春建设厅官方网站网站建设电脑维修数据恢复
  • 茂名手机网站建设公司建房的网站
  • 泰州网站制作工具平面设计广告作品
  • 织梦做的网站怎么上传视频绍兴网站开发08keji
  • 网站建设企业类型是什么意思wordpress 广告代码
  • 北京网站定制价格表目前专业做水果的网站
  • 外贸网站制作哪家好可以做网站的公司有哪些
  • wordpress设置公众号东莞seo推广机构帖子
  • 做海报有哪些网站哔哩哔哩网站电子商务建设
  • 做淘宝优惠卷网站步骤WordPress明月浩空
  • 专业广州网站建设wordpress 灯箱 插件
  • 自学建网站做网站优化优秀平面广告设计赏析
  • 企业网站开发的背景和意义优化设计答案五年级下册
  • 网络游戏网站开发网站源码如何使用
  • 建设学院网站蓝色网站建设
  • 网站文件保护怎么做沧州企业做网站
  • 广州网站建设公司万齐网络科技app开发公司怎么选择
  • 网站建设课程设计格式小游戏推广联盟
  • 青海 网站开发 图灵58黄页
  • 郑州红酒网站建设app系统开发费用
  • 辽宁省造价工程信息网杭州优化外包公司排名