We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 9f8695b commit 990cbc2Copy full SHA for 990cbc2
First Missing Positive/First_Missing_Positive.py
@@ -0,0 +1,38 @@
1
+# 题目要求是线性的时间复杂度,并且使用常数的存储空间
2
+
3
+# 第一种思路,不符合题目要求,因为如果创建set,那么储存空间就不是常数
4
+# 如果直接使用列表去做索引,那么时间复杂度也不再是线性的,这时候是O(N^2)
5
+# 36ms 99.93%
6
+class Solution:
7
+ def firstMissingPositive(self, nums):
8
+ """
9
+ :type nums: List[int]
10
+ :rtype: int
11
12
+ nums = set(nums)
13
+ index = 1
14
+ while True:
15
+ if index in nums:
16
+ index += 1
17
+ else:
18
+ return index
19
20
+# 第二种思路
21
22
23
24
25
26
27
28
+ nums.append(0)
29
+ n = len(nums)
30
+ for i in range(len(nums)):
31
+ if nums[i] < 0 or nums[i] >= n:
32
+ nums[i] = 0
33
34
+ nums[nums[i] % n] += n
35
+ for i in range(1, len(nums)):
36
+ if nums[i] < n:
37
+ return i
38
+ return n
0 commit comments