Skip to content

Commit 2a13d7f

Browse files
authored
Merge pull request #2363 from hyeri0903/main
[hyeri0903] WEEK 01 solutions
2 parents 7b45ab3 + 1f51b19 commit 2a13d7f

5 files changed

Lines changed: 95 additions & 0 deletions

File tree

contains-duplicate/hyeri0903.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution:
2+
def containsDuplicate(self, nums: List[int]) -> bool:
3+
ans = False
4+
dic = dict()
5+
6+
for n in nums:
7+
if n in dic:
8+
return True
9+
else:
10+
dic[n] = 1
11+
return ans
12+
13+

house-robber/hyeri0903.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution:
2+
def rob(self, nums: List[int]) -> int:
3+
dp = {}
4+
dp[0] = nums[0]
5+
if len(nums) >= 2:
6+
dp[1] = max(nums[0], nums[1])
7+
else:
8+
return nums[0]
9+
10+
for i in range(2, len(nums)):
11+
dp[i] = max(dp[i-1], dp[i-2] + nums[i])
12+
13+
res = list(dp.values())[-1]
14+
return res
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
class Solution:
2+
def longestConsecutive(self, nums: List[int]) -> int:
3+
if len(nums) <= 0:
4+
return 0
5+
6+
res = 0
7+
length = 1
8+
nums.sort()
9+
10+
for i in range(len(nums)-1):
11+
if nums[i] == nums[i+1]:
12+
continue
13+
if nums[i] + 1 == nums[i+1]:
14+
length += 1
15+
else:
16+
res = max(res, length)
17+
length = 1
18+
19+
res = max(res, length)
20+
return res
21+
22+
#set을 사용한 풀이
23+
# if len(nums) <= 0:
24+
# return 0
25+
# res, cnt = 1, 1
26+
# sorted_nums = list(set(nums))
27+
# sorted_nums.sort()
28+
# print(sorted_nums)
29+
30+
# for i in range(len(sorted_nums) - 1):
31+
# if sorted_nums[i + 1] - sorted_nums[i] == 1:
32+
# cnt += 1
33+
# else:
34+
# cnt = 1
35+
# res = max(res, cnt)
36+
# return res
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import heapq
2+
3+
class Solution:
4+
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
5+
table = {}
6+
for n in nums:
7+
if n in table:
8+
table[n] += 1
9+
else:
10+
table[n] = 1
11+
#sol 1) sorting 사용한 case
12+
# sorted_table = sorted(table.items(), key=lambda x:x[1], reverse = True)
13+
# return [ key for key, freq in sorted_table[:k]]
14+
15+
#sol 2) min heap 사용한 case
16+
#convert the frequencies to negative values so it return first
17+
heap = [(-freq, key) for key, freq in table.items()]
18+
heapq.heapify(heap)
19+
20+
res = []
21+
for _ in range(k):
22+
freq, key = heapq.heappop(heap)
23+
res.append(key)
24+
return res

two-sum/hyeri0903.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+
4+
for i in range(len(nums)):
5+
for j in range(i+1, len(nums)):
6+
if nums[i] + nums[j] == target:
7+
return [i, j]
8+

0 commit comments

Comments
 (0)