代码随想录算法训练营第一天| 27 移除元素 704 二分查找
•
算法结构
目录
27 移除元素
704 二分查找
27 移除元素
快指针遍历,慢指针记录
class Solution {
public:
int removeElement(vector& nums, int val) {
int l = 0,r = 0;
for(;r < nums.size();r++){
if(nums[r] == val){
}else{
nums[l++] = nums[r];
}
}
return l;
}
};
时间复杂度O(logn)
空间复杂度O(1)
704 二分查找
左闭右闭
class Solution {
public:
int search(vector& nums, int target) {
int l = 0,r = nums.size() - 1;
while(r >= l){
int mid = (r - l) / 2 + l;
if(nums[mid] > target){
r = mid - 1;
}else if(nums[mid] < target){
l = mid + 1;
}else{
return mid;
}
}
return -1;
}
};
时间复杂度O(logn)
空间复杂度O(1)
左闭右开
class Solution {
public:
int search(vector& nums, int target) {
int l = 0,r = nums.size();
while(r > l){
int mid = (r - l) / 2 + l;
if(nums[mid] > target){
r = mid;
}else if(nums[mid] < target){
l = mid + 1;
}else{
return mid;
}
}
return -1;
}
};
时间复杂度O(n)
空间复杂度O(1)
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/8a8a29e13e.html
