File tree

4 files changed

+67
-0
lines changed

4 files changed

+67
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution:
2+
def missingNumber(self, nums):
3+
i = 0
4+
n = len(nums)
5+
6+
while i < n:
7+
j = nums[i]
8+
if nums[i] < n and nums[i] != nums[j]:
9+
nums[i], nums[j] = nums[j], nums[i]
10+
else:
11+
i += 1
12+
13+
for i, num in enumerate(nums):
14+
if i != num:
15+
return i
16+
17+
return n
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution:
2+
def findDisappearedNumbers(self, nums):
3+
i = 0
4+
n = len(nums)
5+
6+
while i < n:
7+
j = nums[i] - 1
8+
if nums[i] != nums[j]:
9+
nums[i], nums[j] = nums[j], nums[i]
10+
else:
11+
i += 1
12+
13+
missing = []
14+
for i, num in enumerate(nums):
15+
if num != i + 1:
16+
missing.append(i + 1)
17+
18+
return missing
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution:
2+
def findDuplicate(self, nums):
3+
i = 0
4+
n = len(nums)
5+
6+
while i < n:
7+
if nums[i] != i + 1:
8+
j = nums[i] - 1
9+
if nums[i] != nums[j]:
10+
nums[i], nums[j] = nums[j], nums[i]
11+
else:
12+
return nums[i]
13+
else:
14+
i += 1
15+
16+
return -1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution:
2+
def findDuplicates(self, nums):
3+
i = 0
4+
while i < len(nums):
5+
j = nums[i] - 1
6+
if nums[i] != nums[j]:
7+
nums[i], nums[j] = nums[j], nums[i]
8+
else:
9+
i += 1
10+
11+
duplicates = []
12+
for i, num in enumerate(nums):
13+
if nums[i] != i + 1:
14+
duplicates.append(num)
15+
16+
return duplicates

0 commit comments

Comments
 (0)