LeetCode448. 找到所有数组中消失的数字
2021-03-21 19:27
标签:大于 abs numbers 观察 负数 public info 因此 线性时间 题目要求只能用常数空间和线性时间完成这个任务,因此需要用一个比较取巧的做法。 在没有空间限制的情况下,我们会想到对每个值做一个映射,比如用一个哈希表计算每个数出现的次数。但是由于此题对空间进行了限制, 所以可以这样:对于一个值 代码如下: LeetCode448. 找到所有数组中消失的数字 标签:大于 abs numbers 观察 负数 public info 因此 线性时间 原文地址:https://www.cnblogs.com/linrj/p/13884559.html
因此我们只能在原数组上进行“映射”,再由观察发现,每个数的值都是1~n内的整数,正好可以将值映射到下标。nums[i]
,我们将nums[nums[i]]
变为负数,这样,一遍扫描之后。再进行第二遍扫描。如果某个数j
未在数组中出现过,这nums[j - 1]
为正数。class Solution {
public:
vector
文章标题:LeetCode448. 找到所有数组中消失的数字
文章链接:http://soscw.com/index.php/essay/67297.html