| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> LeetCode 0448. 找到所有数组中消失的数字:三种方法解决 -> 正文阅读 |
|
[数据结构与算法]LeetCode 0448. 找到所有数组中消失的数字:三种方法解决 |
【LetMeFly】三种方法解决:448.找到所有数组中消失的数字力扣题目链接:https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array/ 给你一个含 ? 示例 1: 输入:nums = [4,3,2,7,8,2,3,1] 输出:[5,6] 示例 2: 输入:nums = [1,1] 输出:[2] ? 提示:
进阶:你能在不使用额外空间且时间复杂度为 方法一:哈希方法一实现起来很简单,使用一个哈希表存放出现过的元素,再从 1 1 1到 n n n遍历一遍看哪个元素没有在哈希表中,哪个元素就“没有出现过”
AC代码C++
方法二:原地修改方法一的空间复杂度主要来自哈希表 那么想要不额外开辟空间,有种办法就是在原始数组上修改。 如果原始数组中存在 x x x,那么我们就把原始数组的第 x x x个数变成负数。 这样,我们只需要从第一个数遍历到第 n n n个数,看看哪个数是正数(假设是第 a a a个),就说 a a a没有在数组中出现过。 但是代价是,我们修改了原始数组!!!
AC代码C++
方法三:双指针不如给原始数组排个序,然后用一个“指针”指向数组中处理过的元素,另一个“指针”从“1”指到“n” 指针二从1到n遍历,当指针一所指位置合法并且所指元素小于指针二时,指针一后移 接着判断指针一所指是否和指针二相同,相同则表示指针二所指出现过,否则表示没有出现过
AC代码C++
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 19:30:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |