Neet 代码 150 C++
使用 C++20
217. 包含重复元素
| 方法 | 时间复杂度 | 空间复杂度 |
|---|---|---|
| 无序集合 | O(n) | O(n) |
| 两个指针 | O(n) | O(1) |
Set
int longestConsecutive(vector<int>& nums){
std::unordered_set<int> memo(nums.begin(), nums.end());
int res = 0;
for(int i: memo){
if(!memo.contains(i - 1)){
int counter = 1;
while(memo.contains(i + counter))
counter += 1;
res = max(res, counter);
}
}
return res;
}
Binary Search
int search(vector<int>& nums, int target) {
int l = 0;
int r = nums.size() - 1;
while(l < r){
int m = (r + l) / 2;
if(nums[m] < target){
l = m + 1;
}
else{
r = m;
}
}
return nums[l] == target ? l : -1;
}