Skip to content

Commit eae0c5a

Browse files
authored
[devyejin] WEEK 01 solutions #1694
[devyejin] WEEK 01 solutions #1694
2 parents 4310183 + 659effe commit eae0c5a

File tree

5 files changed

+64
-0
lines changed

5 files changed

+64
-0
lines changed

contains-duplicate/devyejin.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
class Solution(object):
2+
def containsDuplicate(self, nums):
3+
return len(nums) != len(set(nums))
4+

house-robber/devyejin.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution(object):
2+
def rob(self, nums):
3+
length = len(nums)
4+
5+
if length <= 2:
6+
return max(nums)
7+
8+
dp = [0] * length
9+
dp[0] = nums[0]
10+
dp[1] = max(nums[0], nums[1])
11+
12+
for i in range(2, length):
13+
dp[i] = max(dp[i - 1], dp[i - 2] + nums[i])
14+
15+
return dp[-1]
16+
17+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution(object):
2+
def longestConsecutive(self, nums):
3+
4+
if not nums:
5+
return 0
6+
7+
num_set = set(nums)
8+
max_length = 0
9+
10+
for num in num_set:
11+
if num - 1 not in num_set:
12+
length = 1
13+
while num + length in num_set:
14+
length += 1
15+
max_length = max(max_length, length)
16+
17+
return max_length
18+
19+

top-k-frequent-elements/devyejin.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from collections import Counter
2+
import heapq
3+
4+
5+
class Solution(object):
6+
def topKFrequent(self, nums, k):
7+
counter = sorted(Counter(nums).items(), key=lambda item: -item[1])
8+
return list(num for num, count in counter[:k])
9+

two-sum/devyejin.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution(object):
2+
def twoSum(self, nums, target):
3+
4+
nums_tuple = sorted(list(enumerate(nums)), key=lambda x: x[1])
5+
left, right = 0, len(nums) - 1
6+
7+
while left < right:
8+
temp_sum = nums_tuple[left][1] + nums_tuple[right][1]
9+
if temp_sum == target:
10+
return [nums_tuple[left][0], nums_tuple[right][0]]
11+
elif temp_sum < target:
12+
left += 1
13+
else:
14+
right -= 1
15+

0 commit comments

Comments
 (0)