您的位置:首页 > 其它

lintcode 中等题:find the missing number 寻找缺失的数

2015-11-06 21:25 239 查看
题目

寻找缺失的数

给出一个包含 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: