Day4: (Hashing)
2 Sum problem Solved on: Aug 11 2020
vector<int> twoSum(vector<int>& nums, int target) {
map<int, int> m;
int n=nums.size();
int diff;
for (int i=0;i<n;i++) {
int ele = target-nums[i];
if (m.count(ele)) {
return {m[ele], i };
}
m[nums[i]] = i;
}
return {};
}
Longest Consecutive Sequence Solved on: 20th Aug 2020
def longestConsecutive(self, nums: List[int]) -> int:
count=1
nums=list(set(nums))
n=len(nums)
if (n==0):
return 0
nums.sort()
print (nums)
max_count=1
for i in range(1, n):
if nums[i-1]+1 == nums[i]:
count=count+ 1
if (count > max_count):
max_count=count
else:
count=1
return max_count
int longestConsecutive(vector<int>& nums) {
if (nums.size() == 0)
return 0;
else if (nums.size() == 1)
return 1;
set<int> S;
int n=nums.size();
for (int i=0;i<n;i++){
S.insert(nums[i]);
}
int count=1;
int max=1;
auto e = prev(S.end(), 1); // last element
for (auto itr=S.begin(); itr!=e; itr++) {
cout << *itr << " ";
if (*next(itr,1) == *itr + 1) {
count++;
if (count>=max) {
max=count;
}
} else {
count=1;
}
}
return max;
}
Last updated
Was this helpful?