-
Notifications
You must be signed in to change notification settings - Fork 0
/
set_mismatch.py
43 lines (30 loc) · 966 Bytes
/
set_mismatch.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
'''
Problem Number: 645
Difficulty level: Easy
Link: https://leetcode.com/problems/set-mismatch/description/
Author: namratabilurkar
'''
'''
Input: nums = [1,2,2,4]
Output: [2,3]
'''
class Solution(object):
def findErrorNums(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
sum_of_nums = sum(nums)
repeated_num = sum_of_nums - sum(set(nums))
list_len = len(nums)
expected_nums_total = 0
for i in range(1, list_len+1):
expected_nums_total += i
# Gap between the expected total of 1 to n numbers and the actual sum of nums.
gap = expected_nums_total - sum_of_nums
disappeared_num = repeated_num + gap
return [repeated_num, disappeared_num]
output = Solution()
print(output.findErrorNums(nums=[1,2,2,4])) # [2,3]
print(output.findErrorNums(nums=[2,2,3,4,5,6])) # [2,1]
print(output.findErrorNums(nums=[1,2,3,4,5,4])) # [4,6]