diff --git a/contains-duplicate/PDKhan.cpp b/contains-duplicate/PDKhan.cpp new file mode 100644 index 000000000..552add450 --- /dev/null +++ b/contains-duplicate/PDKhan.cpp @@ -0,0 +1,15 @@ +class Solution { + public: + bool containsDuplicate(vector& nums) { + unordered_map map; + + for(int i = 0; i < nums.size(); i++){ + map[nums[i]]++; + + if(map[nums[i]] == 2) + return true; + } + + return false; + } + }; diff --git a/house-robber/PDKhan.cpp b/house-robber/PDKhan.cpp new file mode 100644 index 000000000..83bca3f46 --- /dev/null +++ b/house-robber/PDKhan.cpp @@ -0,0 +1,22 @@ +class Solution { + public: + int rob(vector& nums) { + int n = nums.size(); + + if(n == 0) return 0; + if(n == 1) return nums[0]; + if(n == 2) return max(nums[0], nums[1]); + + int prev2 = nums[0]; + int prev1 = max(nums[0], nums[1]); + + + for(int i = 2; i < n; i++){ + int curr = max(prev1, prev2 + nums[i]); + prev2 = prev1; + prev1 = curr; + } + + return prev1; + } + }; diff --git a/longest-consecutive-sequence/PDKhan.cpp b/longest-consecutive-sequence/PDKhan.cpp new file mode 100644 index 000000000..7c8634b98 --- /dev/null +++ b/longest-consecutive-sequence/PDKhan.cpp @@ -0,0 +1,30 @@ +class Solution { + public: + int longestConsecutive(vector& nums) { + int cnt = 1; + int max = 0; + + if(nums.size() == 0) + return 0; + + sort(nums.begin(), nums.end()); + + for(int i = 1; i < nums.size(); i++){ + if(nums[i] == nums[i-1] + 1) + cnt++; + else if(nums[i] == nums[i-1]) + continue; + else{ + if(max < cnt) + max = cnt; + + cnt = 1; + } + } + + if(max < cnt) + return cnt; + + return max; + } + }; diff --git a/top-k-frequent-elements/PDKhan.cpp b/top-k-frequent-elements/PDKhan.cpp new file mode 100644 index 000000000..9a6993da0 --- /dev/null +++ b/top-k-frequent-elements/PDKhan.cpp @@ -0,0 +1,26 @@ +class Solution { + public: + vector topKFrequent(vector& nums, int k) { + unordered_map map; + vector result; + + for(int i = 0; i < nums.size(); i++){ + map[nums[i]]++; + } + + priority_queue, vector>, greater>> minHeap; + + for(auto i : map){ + minHeap.push({i.second, i.first}); + if(minHeap.size() > k) + minHeap.pop(); + } + + while(!minHeap.empty()){ + result.push_back(minHeap.top().second); + minHeap.pop(); + } + + return result; + } + }; diff --git a/two-sum/PDKhan.cpp b/two-sum/PDKhan.cpp new file mode 100644 index 000000000..ddea0e1fa --- /dev/null +++ b/two-sum/PDKhan.cpp @@ -0,0 +1,18 @@ +class Solution { + public: + vector twoSum(vector& nums, int target) { + unordered_map Map; + + for(int i = 0; i < nums.size(); i++){ + int diff = target - nums[i]; + + if(Map.find(diff) != Map.end()){ + return { Map[diff], i }; + } + + Map[nums[i]] = i; + } + + return {}; + } + };