diff --git a/contains-duplicate/prograsshopper.py b/contains-duplicate/prograsshopper.py new file mode 100644 index 000000000..86e9be411 --- /dev/null +++ b/contains-duplicate/prograsshopper.py @@ -0,0 +1,3 @@ +class Solution: + def containsDuplicate(self, nums: List[int]) -> bool: + return len(set(nums)) != len(nums) diff --git a/top-k-frequent-elements/prograsshopper.py b/top-k-frequent-elements/prograsshopper.py new file mode 100644 index 000000000..ec7035f83 --- /dev/null +++ b/top-k-frequent-elements/prograsshopper.py @@ -0,0 +1,8 @@ +class Solution: + def topKFrequent(self, nums: List[int], k: int) -> List[int]: + from collections import defaultdict + frequent_dict = defaultdict(int) + for num in nums: + frequent_dict[num] += 1 + sorted_dict = dict(sorted(frequent_dict.items(), key=operator.itemgetter(1), reverse=True)) + return list(sorted_dict)[:k] diff --git a/two-sum/prograsshopper.py b/two-sum/prograsshopper.py new file mode 100644 index 000000000..ee2a70bd2 --- /dev/null +++ b/two-sum/prograsshopper.py @@ -0,0 +1,10 @@ +class Solution: + def twoSum(self, nums: List[int], target: int) -> List[int]: + index_dict = {elem: idx for idx, elem in enumerate(nums)} + result = [] + for idx, num in enumerate(nums): + remain = index_dict.get(target-num, None) + if remain and idx != remain: + result = [idx, remain] + break + return result