[抄题]:

Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.

Find all the elements of [1, n] inclusive that do not appear in this array.

Could you do it without extra space and in O(n) runtime? You may assume the returned list does not count as extra space.

Example:

Input:
[4,3,2,7,8,2,3,1]Output:
[5,6]

[暴力解法]:

时间分析:

空间分析:

[优化后]:

时间分析:

空间分析:

[奇葩输出条件]:

[奇葩corner case]:

[思维问题]:

不知道怎么去除重复

[一句话思路]:

nums[nums[i] -1] = -nums[nums[i]-1] 每个数字处理一次。没有被处理的正数就是被前面的挤兑了。背吧

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. 要做index的数必须取绝对值

[二刷]:

[三刷]:

[四刷]:

[五刷]:

[五分钟肉眼debug的结果]:

[总结]:

没有被处理的正数就是被前面的挤兑了.这题[1,n]两端必有的情况太特殊了

[复杂度]:Time complexity: O(n) Space complexity: O(1)

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

442. Find All Duplicates in an Array 出现两次的:还是考数学啊

[代码风格] :

class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {//iniList<Integer> result = new ArrayList<Integer>();//ccif (nums == null || nums.length == 0) {return result;}//-1for (int i = 0; i < nums.length; i++) {int val = Math.abs(nums[i]) - 1;//trueif (nums[val] > 0) {nums[val] = - nums[val];}}//checkfor (int i = 0; i < nums.length; i++) {if (nums[i] > 0) {result.add(i + 1);}}//returnreturn result;}
}

View Code

转载于:https://www.cnblogs.com/immiao0319/p/8870388.html

448. Find All Numbers Disappeared in an Array 寻找有界数组[1,n]中的缺失数相关推荐

  1. 448. Find All Numbers Disappeared in an Array(找到所有数组中消失的数字)

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  2. LeetCode 448. Find All Numbers Disappeared in an Array 442. Find All Duplicates in an Array

    这两道题很有意思,由于元素为1~n,因此每个元素的值-1(映射到0~n-1)就可以直接当做下标.这样将 nums 中对应下标的元素 *-1 以i表示 index+1 这个元素出现过了,能节省存储的空间 ...

  3. Leetcode 448. Find All Numbers Disappeared in an Array

    Leetcode  448. Find All Numbers Disappeared in an Array Add to List Description Submission Solutions ...

  4. leetcode 448. Find All Numbers Disappeared in an Array

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  5. 448. Find All Numbers Disappeared in an Array

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  6. [swift] LeetCode 448. Find All Numbers Disappeared in an Array

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  7. leetcode 448. Find All Numbers Disappeared in an Array | 448. 找到所有数组中消失的数字(原地,位运算)

    题目 https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/ 题解 遍历数组,将数组中每个数字 n 作为下标,将 ...

  8. [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  9. 448. Find All Numbers Disappeared in an Array645. Set Mismatch

    题目: 448. Find All Numbers Disappeared in an Array Given an array of integers where 1 ≤ a[i] ≤ n (n = ...

最新文章

  1. 数据结构与算法:13 字符串与整数集合
  2. bcc Reference Guide 中文翻译
  3. php操作redis_PHP操作redis的两种方式
  4. Java final、static final 讲解
  5. mac下修改mysql默认字符集为utf8
  6. 送计算机教授教师节礼物,教师节送教授什么礼物好
  7. ELK 中的elasticsearch 集群的部署
  8. 劝你别再闷头自学NLP了!!!请收下这套自然语言处理(NLP)算法学习路线!
  9. 【转】20个Java 代码生成器
  10. 跨境电商ERP的主要功能和模块
  11. 阿丹的1234投资策略
  12. 求两个字符串的最大连续公共字串
  13. Excel调用MD5加密
  14. 谷歌地球(Google Earth) 7.3.3.7721
  15. ROS 添加自定义.msg文件生成的.h文件
  16. stm32外设-DMA
  17. 女士细线毛衣起多少针_手工编织毛衣各处针数和方法
  18. mac os 配置 dock 栏图标显示/隐藏
  19. 微信小程序开发之——音乐播放器-播放列表(3.5)
  20. matlab 数组限制,在MATLAB中,数组必须先定义其大小后才能使用

热门文章

  1. 【CodeForces - 527C】Glass Carving(线段树或者SBT或者set)
  2. 【HDU - 4217 】Data Structure? (线段树求第k小数)
  3. 【OpenJ_Bailian - 1258】【POJ - 1258】Agri-Net (最小生成树裸题)
  4. 【HDU - 2571】 命运(记忆化搜索)
  5. 【HDU - 2203】 亲和串 (思维题,可选KMP)
  6. php测试插入,php – 使用Symfony测试数据库插入
  7. case when then else多个条件_sqlserver条件分支case when使用教程
  8. oracle存储过程日志打印,如何在oracle存储过程中逐行打印
  9. java reader_Java之字符输入流,Reader类的简单介绍
  10. 求数字序列中的第n位对应的数字