一个长度为N的数组,其中元素取值为1-N,求这个数组中没有出现的、1-N之间的数字。
要求无额外空间,O(n)时间复杂度。

nums[i]=-1表示i数字已经出现过了

class Solution(object):def findDisappearedNumbers(self, nums):""":type nums: List[int]:rtype: List[int]"""i=0 while i<len(nums):if nums[i]==-1 or nums[nums[i]-1]==-1:i+=1continueelse:t=nums[i]-1nums[i]=nums[t]if nums[t]==-1:i+=1continueelse:nums[t]=-1 ans=[]for i in range(len(nums)): if nums[i]!=-1:ans.append(i+1)return ans

转载于:https://www.cnblogs.com/weiyinfu/p/7503037.html

O(n)复杂度求没有出现的数字(leetcode448)相关推荐

  1. python 无序列表中第k大元素_Python要求O(n)复杂度求无序列表中第K的大元素实例...

    昨天面试上来就是一个算法,平时基本的算法还行,结果变个法就不会了...感觉应该刷一波Leecode冷静下...今天抽空看下. 题目就是要求O(n)复杂度求无序列表中第K的大元素 如果没有复杂度的限制很 ...

  2. python列表求平均值_长篇文讲解:Python要求O(n)复杂度求无序列表中第K的大元素实例...

    本文内容主要介绍了Python要求O(n)复杂度求无序列表中第K的大元素实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧! 昨天面试上来就是一个算法,平时基本的算法还行,结果变个法 ...

  3. O(n)复杂度求区间第K大

    O(n)复杂度求区间第K大 描述 给你一个数组,O(N)复杂度找出其中第K大的数. 输入 第一行包括两个数,N,K,分别代表数组大小,以及你应该找出第K大的数. 接下来N行,每行包括一个数. ​ 输出 ...

  4. Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)

    6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...

  5. 极有收藏价值的一组难求纯4位数字.com域名 #8847#含义你懂的。 http://t.cn/ae9CTd

    极有收藏价值的一组难求纯4位数字.com域名 #8847#含义你懂的. http://t.cn/ae9CTd 转载于:https://www.cnblogs.com/forestbird/archiv ...

  6. hud 3874 求区间内不同数字的和

    http://acm.hdu.edu.cn/showproblem.php?pid=3874 和求区间内不同数字的个数一样. //#include<bits/stdc++.h> //usi ...

  7. 第六章第二题(求一个整数各位数字之和)(Sum the digits in an integer)

    *6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头: public static int sumDigits(long n) 例如:sumDigits(234) ...

  8. c语言组成最大数字,【C语言】输入一组整数,求出这组数字子序列和中最大值...

    //输入一组整数.求出这组数字子序列和中最大值 #include int MAxSum(int arr[],int len) { int maxsum = 0; int i; int j; for ( ...

  9. 蓝桥杯:求一个五位数的数字循环黑洞[快速排序]

    任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456.求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则 ...

最新文章

  1. keras从入门到放弃(二)多项回归
  2. DOS网络命令 之 ping
  3. linux建立与删除目录
  4. 【操作系统】操作系统不可怕,重装系统不求人,因为我们是GISer!
  5. java学习(20):巩固练习
  6. TypeScript 类(Classes)
  7. 查看其他计算机的共享资源,NetResView (共享资源查看)
  8. 如何设置Eclipse新建项目的默认编码方式
  9. 对比Linux系统和Windows系统哪个更好
  10. JS获取浏览器高度、屏幕高度、宽屏
  11. 机器学习-线性回归scikit-learn
  12. 【车间调度】基于matlab粒子群算法求解车间生产调度问题【含Matlab源码 245期】
  13. Windows中字体库的安装方法
  14. 计算机字体库位置,电脑cad软件字体库的路径怎么添加
  15. PHP 仍然是最流行的服务器端编程语言
  16. 第4章第3节:如何插入或删除表格的行与列 [PowerPoint精美幻灯片实战教程]
  17. MSET key value [key value ...]
  18. 美股-史考特(Scottrade)开户详细说明
  19. py读取xlsx文件
  20. OC:跟随小码哥一起学习KVC

热门文章

  1. 添加git 忽略文件
  2. java多线程知识点总结
  3. 缓存(之一) 使用Apache Httpd实现http缓存
  4. PAT-BASIC-1003-我要通过!
  5. VC++ (二)类的访问级别
  6. 直接调用内置数据源连接对话框(C#/VB.NET2005源码)
  7. 【JavaScript 笔记】— 函数高级(变量作用域、解构赋值、方法、高阶函数、闭包、箭头函数、generator)
  8. 删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
  9. php再次确认密码,Laravel6.2中用于用户登录的新密码确认流程详解
  10. OkHttp RouteSelector代理解析