diff --git a/contains-duplicate/8804who.py b/contains-duplicate/8804who.py new file mode 100644 index 000000000..49554005e --- /dev/null +++ b/contains-duplicate/8804who.py @@ -0,0 +1,4 @@ +class Solution: + def containsDuplicate(self, nums: List[int]) -> bool: + return len(set(nums)) != len(nums) + diff --git a/house-robber/8804who.py b/house-robber/8804who.py new file mode 100644 index 000000000..6415bebd4 --- /dev/null +++ b/house-robber/8804who.py @@ -0,0 +1,14 @@ +class Solution: + def rob(self, nums: List[int]) -> int: + if len(nums) == 1: + return nums[0] + elif len(nums) == 2: + return max(nums) + else: + nums = [0] + nums + dp = [0 for _ in range(len(nums))] + dp[1] = nums[1] + for i in range(1, len(nums)): + dp[i] = max(dp[i-2]+nums[i], dp[i-1]) + return dp[-1] + diff --git a/longest-consecutive-sequence/8804who.py b/longest-consecutive-sequence/8804who.py new file mode 100644 index 000000000..fc5b59f62 --- /dev/null +++ b/longest-consecutive-sequence/8804who.py @@ -0,0 +1,19 @@ +class Solution: + def longestConsecutive(self, nums: List[int]) -> int: + num_set = set(nums) + answer = 0 + while num_set: + num = num_set.pop() + l, r = 1, 1 + + while num - l in num_set: + num_set.remove(num-l) + l += 1 + + while num + r in num_set: + num_set.remove(num+r) + r += 1 + + answer = max(answer, l+r-1) + return answer + diff --git a/top-k-frequent-elements/8804who.py b/top-k-frequent-elements/8804who.py new file mode 100644 index 000000000..54aa8353c --- /dev/null +++ b/top-k-frequent-elements/8804who.py @@ -0,0 +1,11 @@ +class Solution: + def topKFrequent(self, nums: List[int], k: int) -> List[int]: + num_list = {} + for num in nums: + if num not in num_list: + num_list[num] = 1 + else: + num_list[num] += 1 + + return [n[1] for n in sorted([[num_list[key], key] for key in num_list.keys()], reverse=True)[:k]] + diff --git a/two-sum/8804who.py b/two-sum/8804who.py new file mode 100644 index 000000000..0db1aad63 --- /dev/null +++ b/two-sum/8804who.py @@ -0,0 +1,8 @@ +class Solution: + def twoSum(self, nums: List[int], target: int) -> List[int]: + num_list = {} + for i in range(len(nums)): + if target-nums[i] in num_list: + return [num_list[target-nums[i]], i] + num_list[nums[i]] = i +