毕业设计网站开发实施步骤打码网站如何建设

张小明 2026/3/2 23:10:32
毕业设计网站开发实施步骤,打码网站如何建设,随州网站建设优化推广渠道,扬州seo招聘文章目录摘要描述题解答案#xff08;直觉方法#xff09;题解代码#xff08;Swift 可运行 Demo#xff09;题解代码分析为什么要用“负数标记”#xff1f;为什么需要用 abs(nums[i])#xff1f;第二轮遍历为什么能找到缺失值#xff1f;示例测试及结果示例 1示例 2时…文章目录摘要描述题解答案直觉方法题解代码Swift 可运行 Demo题解代码分析为什么要用“负数标记”为什么需要用 abs(nums[i])第二轮遍历为什么能找到缺失值示例测试及结果示例 1示例 2时间复杂度O(n)空间复杂度O(1) 额外空间总结“用符号正负作为额外标记信息”的技巧摘要这题可以说是数组题里最典型的“原地标记法”应用之一。题目要求我们找出1...n中没出现过的数字而且还给了个进阶要求在 O(n) 时间、O(1) 额外空间内完成。听起来好像有点限制但只要利用“数组本身可作为标记空间”的特性就能用非常干净利落的方式解决。这类技巧专项训练非常重要因为真实开发中有很多场景都可以借鉴这种思路。描述输入是一个长度为n的数组里面的每个数字都在[1, n]区间内。我们要返回所有没有出现在数组里的数字。比如nums [4,3,2,7,8,2,3,1] 缺失的是5 和 6或者nums [1,1] 缺失的是2进阶要求我们不能使用额外空间返回结果除外也就是说不能随便用哈希表、map 之类的辅助结构。题解答案直觉方法利用这样一个事实数组中的值都在[1, n]范围内那么每个值x对应数组位置x-1必定存在。我们可以利用“把出现过的数字对应的位置标记为负数”这种方式把数组本身变成一个“出现记录表”。整体思路遍历数组对于每个数字x我们让数组中x-1的位置变成负数如果还没负遍历标记后的数组所有仍然是正数的位置i说明数字i1没出现过这是典型的“使用符号作为标记”的技巧。题解代码Swift 可运行 DemoimportFoundationclassSolution{funcfindDisappearedNumbers(_nums:[Int])-[Int]{varnumsnums// 复制一份便于原地修改letnnums.count// 第一步把出现过的数字对应位置标记成负数foriin0..n{letindexabs(nums[i])-1ifnums[index]0{nums[index]-nums[index]}}// 第二步正数的位置就是缺失的数字varresult[Int]()foriin0..n{ifnums[i]0{result.append(i1)}}returnresult}}// MARK: - DemoletsolutionSolution()print(示例 1,solution.findDisappearedNumbers([4,3,2,7,8,2,3,1]))// [5, 6]print(示例 2,solution.findDisappearedNumbers([1,1]))// [2]题解代码分析为什么要用“负数标记”这是这题最精妙的地方。数组长度为 n所有数字范围都在1...n那么数字和索引之间刚好可以一一映射。例子数字 4 —— 对应索引 3 数字 1 —— 对应索引 0 数字 7 —— 对应索引 6利用这点我们可以把“某个数字出现过”这件事记录到nums[x-1]中。最简单的标记方式就是→把 nums[x-1] 变成负数负数代表“已经被访问过了”。为什么不直接改成 0 或者某个标志值因为之后我们仍然需要判断原本的值而负数保留了数值本身的信息且不会和[1,n]冲突。为什么需要用abs(nums[i])因为标记过程中有些位置已经变成负数了所以必须取绝对值。第二轮遍历为什么能找到缺失值因为出现过的数字对应位置已经被标记为负数没出现过的位置仍然是正数所以第 i 个位置是正数 → i 1 没出现过就是缺失值。示例测试及结果我们用题目给的例子跑一下示例 1输入 [4,3,2,7,8,2,3,1] 中间标记过程如下 原始 4 3 2 7 8 2 3 1 标记后 -4 -3 -2 -7 8 -2 -3 -1 ↑ ↑ 正 正 缺失数字为[5, 6]示例 2输入 [1,1] 标记后[-1, 1] 缺失的是 2运行 Demo 即可得到相同结果。时间复杂度O(n)一次遍历标记出现过的数字一次遍历找出没被标记的位置两次线性扫描总共 O(n)在大数据量下仍然非常稳定。空间复杂度O(1) 额外空间注意返回的结果数组不算额外空间。其余操作都在原数组上原地完成不需要新开结构。总结这题真正想让你掌握的是“用符号正负作为额外标记信息”的技巧它在很多 O(1) 空间的题里都能出现比如找重复数字找缺失数字数组原地哈希原地 bucket 标记在实际业务逻辑中这种技巧也能用于用户状态表中“是否访问过”的标记即使在共享数据结构中工具链中处理序列时进行轻量级标记内存敏感场景的原地修改技巧
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做酒店工作去哪个招聘网站好南通企业网站seo

Excalidraw构建计算机视觉流程:图像识别路径图 在AI项目迭代日益频繁的今天,一个常见的场景是:算法工程师在白板前手忙脚乱地画着“预处理→特征提取→分类输出”的流程箭头,产品经理皱眉追问某个模块的具体作用,而远程…

张小明 2026/1/12 9:08:13 网站建设

wordpress个人网站模板公司网站排名优化手段

Langchain-Chatchat在安全生产规程查询中的合规价值 在一家大型化工企业的调度中心,一名新入职的操作员正准备执行一次受限空间作业。他打开电脑,在一个简洁的搜索框中输入:“进入反应釜前必须做哪些气体检测?”不到两秒&#xff…

张小明 2026/3/2 20:29:33 网站建设

wordpress记录修改文章时间广州seo排名

在 Linux 命令行生态中,which 是一个看似简单却承载着深刻设计哲学的工具。它通过解析 PATH 环境变量,帮助用户快速定位外部可执行文件的绝对路径。本文将从理论层面剖析 which 的核心机制、设计选择、局限性及其在系统管理中的角色,并探讨其…

张小明 2026/3/2 13:12:01 网站建设

个人网站建设维护深圳龙华高级中学

抖音下载器终极指南:告别手动录制的高效下载方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 还在为抖音视频保存而烦恼?录制画质差、操作繁琐、无法批量处理...这些痛点将彻底成为…

张小明 2026/3/2 14:43:40 网站建设

几级英语可以做外贸网站seophp空间购买

背景 在现代企业数据管理和文件整理工作中,经常需要对大量文件进行统计分析、归档整理和批量处理。传统的手动整理方式效率低下,难以应对复杂的文件组织结构,且容易出错。特别是在需要生成文件清单报表、进行文件分类统计时,人工…

张小明 2026/1/11 14:47:39 网站建设