Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions contains-duplicate/chrisjune.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
class Solution:
def containsDuplicate(self, nums) -> bool:
dic = {}
for num in nums:
dic[num] = dic.get(num, 0) + 1
for v in dic.values():
if v > 1:
return True
return False
12 changes: 12 additions & 0 deletions house-robber/chrisjune.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from typing import List


class Solution:
def rob(self, nums: List[int]) -> int:
if len(nums) <= 1:
return nums[0]
dp = [0] * len(nums)
dp[0], dp[1] = nums[0], max(nums[0], nums[1])
for i in range(2, len(nums)):
dp[i] = max(dp[i - 1], nums[i] + dp[i - 2])
return dp[-1]
18 changes: 18 additions & 0 deletions longest-consecutive-sequence/chrisjune.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from typing import List


class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
if len(nums) < 1:
return 0
nums = list(set(nums))
nums.sort()
dp = [0] * len(nums)
dp[0] = 1
for i in range(1, len(nums)):
if nums[i - 1] + 1 == nums[i]:
dp[i] = dp[i - 1] + 1
else:
dp[i] = 1
print(dp)
return max(dp)
12 changes: 12 additions & 0 deletions top-k-frequent-elements/chrisjune.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from typing import List


class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
dic = {}
for num in nums:
dic[num] = dic.get(num, 0) + 1
l = [(k, v) for k, v in dic.items()]
l.sort(reverse=True, key=lambda x: x[1])
l = [i for i, _ in l]
return l[:k]
11 changes: 11 additions & 0 deletions two-sum/chrisjune.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from typing import List


class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(len(nums)):
if i == j:
continue
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 처음에 이중 for문으로 풀었었는데, 파이썬의 경우 dictionary를 사용하면 시간복잡도를 줄일 수 있는 방법으로도 풀 수 있을 거 같습니다!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리뷰 감사합니다. 의견주신 dictionary로 풀었더니 속도개선이 잘 되었습니다
image

if nums[i] + nums[j] == target:
return [i, j]