lintcode 中等题:find the missing number 寻找缺失的数
2015-11-06 21:25
239 查看
题目
样例
N =
注意
可以改变序列中数的位置。
挑战
在数组上原地完成,使用O(1)的额外空间和O(N)的时间。
解题
重新定义一个数组存放排序后的数,空间复杂度和时间复杂度都是O(N)
Python Code
总耗时: 352 ms
寻找缺失的数
给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。样例
N =
4且序列为
[0, 1, 3]时,缺失的数为
2。
注意
可以改变序列中数的位置。
挑战
在数组上原地完成,使用O(1)的额外空间和O(N)的时间。
解题
重新定义一个数组存放排序后的数,空间复杂度和时间复杂度都是O(N)
class Solution: # @param A: a list of integers # @return: an integer def findMissing(self, A): # write your code here n = len(A) if A == None or n == 0: return 0 # num0 = A for i in range(n): while A[i] != i: # num0 = A[:] if A[i]<0 or A[i]>=n: break tmp = A[i] A[i] = A[tmp] A[tmp] = tmp # if n > 6: # print 'before:',num0 # print ' later:',A for i in range(n): if A[i]!=i: return i return n
Python Code
总耗时: 352 ms
相关文章推荐
- hdu 4655 Cut Pieces(贪心)
- PHP 5.6.15 编译安装
- 三星等低端手机OOM解决方法
- 神的规范:排序算法(二):简单选择排序
- HDU 3001【状态压缩DP】
- hiho 7 完全背包
- Lesson17 Interfacing with raw buffers: the Map class
- 日经春秋 20151106
- 天声人語 20151106 ベーコンに発がん性?
- poj 2531 dfs(最大割)
- 升级Win10注意事项个人总结
- Hive中JOIN操作
- POJ 1236——Network of Schools——————【加边形成强连通图】
- Linux IPC实践--System V消息队列(3)
- C语言中变量定义的位置(C89和C99的区别)
- excel自动转换为可印刷版式:目录的自动生成
- nio编程与io编程
- BLE中Profile是什么意思?
- supervise进程监控工具
- Android进阶之使用自定义的字体库