Skip to content

Commit 87c7e6e

Browse files
authored
Merge pull request #2358 from TreeStone94/main
[TreeStone94] WEEK 1 Solutions
2 parents 2975558 + 4b6be95 commit 87c7e6e

5 files changed

Lines changed: 66 additions & 0 deletions

File tree

contains-duplicate/TreeStone94.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Solution:
2+
def containsDuplicate(self, nums: List[int]) -> bool:
3+
if len(set(nums)) == len(nums):
4+
return False
5+
else:
6+
return True

house-robber/TreeStone94.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution:
2+
def rob(self, nums: List[int]) -> int:
3+
if not nums:
4+
return 0
5+
if len(nums) == 1:
6+
return nums[0]
7+
8+
dp = [0] * len(nums)
9+
dp[0] = nums[0]
10+
dp[1] = max(nums[0], nums[1])
11+
12+
for i in range(2, len(nums)):
13+
dp[i] = max(dp[i-1], dp[i-2] + nums[i])
14+
15+
return dp[-1]
16+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution:
2+
def longestConsecutive(self, nums: List[int]) -> int:
3+
answer = []
4+
count = 0
5+
pre_num = -9999999999999999999
6+
for n in sorted(set(nums)):
7+
if pre_num + 1 == n:
8+
count += 1
9+
else:
10+
answer.append(count)
11+
count = 0
12+
pre_num = n
13+
14+
if count != 0:
15+
answer.append(count)
16+
17+
if answer:
18+
return max(answer) + 1
19+
else:
20+
return 0
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution:
2+
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
3+
frequent = {}
4+
for n in nums:
5+
if n not in frequent:
6+
frequent[n] = 1
7+
else:
8+
frequent[n] += 1
9+
10+
answer = []
11+
for f in sorted(frequent.items(), key=lambda item: item[1], reverse=True):
12+
if k > 0:
13+
answer.append(f[0])
14+
k -= 1
15+
return answer
16+

two-sum/TreeStone94.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Solution:
2+
def twoSum(self, nums: List[int], target: int) -> List[int]:
3+
answer = []
4+
for i,n in enumerate(nums):
5+
t = target - n
6+
if t in nums[i+1:]:
7+
answer = [i, (i+1) +nums[i+1:].index(t)]
8+
return answers

0 commit comments

Comments
 (0)