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]

题目意思很简单,给你一个数组。数组里的数都是大于1小于n的,n为数组长度。里面的数字有可能出现一次有可能两次,让你找出1到n之间没出现在数组中的数字。
请注意,题目限制了时间复杂度为O(n),同时不允许有额外的空间复杂度。
好那这一题如果不限空间复杂度的话很简单了,新开一个数组,用数组下标记录是否出现过这个数字就行了。
但限制空间复杂度的话,就需要一点小聪明了。
跟之前的某题有点像,都是用数的正负来表示是否记录过。
也就是说遍历数组,若数字为1,则把nums[1] 乘以-1,这样就知道1出现过了。若数字为2,则把nums[2]乘以-1,以此类推。
最后遍历一遍数组,不为负数的下标,就是没出现过的数字。
class Solution(object):def findDisappearedNumbers(self, nums):""":type nums: List[int]:rtype: List[int]"""for i in range(len(nums)):m=nums[i]if(m<0):m*=-1if(nums[m-1]>0):nums[m-1]*=-1res=[]for i in range(len(nums)):if(nums[i])>0:res.append(i+1)return ress=Solution()
print(s.findDisappearedNumbers([4,3,2,7,8,2,3,1]))

python--leetcode448. Find All Numbers Disappeared in an Array相关推荐

  1. 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 这个元素出现过了,能节省存储的空间 ...

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

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

  3. Find All Numbers Disappeared in an Array

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

  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. LeetCode Find All Numbers Disappeared in an Array

    题意:给出长度为n的数组,数组的数为 1-n,找出没有出现的数 思路:在遍历数组时,将对应的索引的数设置为负数.第二次遍历数组时,索引所在的数为正数,说明是没有出现的 代码如下: public cla ...

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

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

  7. 8/100. Find All Numbers Disappeared in an Array

    给定一个数组nums,其中每个数的值都在"1~len(nums)"这个范围之间,每个数出现1次或2次,找出这个范围内没出现的数字. allnums用于生成范围内每个数出现1次的数组 ...

  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 Array

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

  10. LeetCode之Find All Numbers Disappeared in an Array

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

最新文章

  1. java junit 运行_appium+java+junit demo运行
  2. mysql为什么直接8.0_为什么要迁移到MySQL8.0?
  3. python中x=x+1的读法-python中a=a+1与a+=1的区别
  4. 数学建模 TSP(旅行商问题) Lingo求解
  5. 不小心执行 rm -f,该如何恢复?
  6. js地址栏获取参数的方法,解决中文乱码问题,能支持中文参数
  7. 以二进制的形式保存在数据库中
  8. GridView控件RowDataBound事件中获取列字段的几种方法(转)
  9. linux 文件查找帮助命令 , 查看网络链接信息, 历史命令
  10. SAP MM BAPI_PO_CREATE1的用法
  11. 剑指offer面试题[37]-两个链表的第一个公共结点
  12. 基于Web的MIS系统环境配置和相关含义(拷贝版)
  13. win10解压软件哪个好(win10用哪个解压软件)
  14. 设置outlook开机自动启动
  15. 谈canvas转图片的方法(base64编码)
  16. JDBC 数据库连接池
  17. open3d中的kd树详解
  18. 微星 GL62M 7RD SSD+HDD双硬盘 安装双系统(win10+ubuntu 16.04)
  19. u盘视频计算机里无法播放,电脑里复制了u盘里的视频文件,说无法播放,播放机不支持该文件类型,或不支持...
  20. 从 Hadoop 到云原生:Kyligence 在云原生巨浪中的思考(1)

热门文章

  1. TFT液晶屏-真彩色高亮度高分辨率的液晶显示屏
  2. c#使用office的墨迹书写工具
  3. 计算机的来源知识,计算机的由来计算机从诞生到现在才不过50多年的时间,可是发展却很快,已先后经历了四代,可以说是人丁兴旺。世界上第一台电子计算机1946年诞生于美国,名为埃尼阿克(ENIAC)...
  4. pycharm 文件名颜色所代表的含义
  5. 跳棋c语言课程设计,C语言课程设计(论文)-跳棋--154591860.doc
  6. 基于Ubuntu 18.04打造嵌入式arm开发环境
  7. 网友上海求职指南2007
  8. 计算与推断思维 十一、估计
  9. hdu4565 so easy 矩阵
  10. 验证整数和小数的正则表达式