1.二分查找
class Solution {
public:
int search(vector<int>& nums, int target) {
int left=0;
int right=nums.size()-1;
while(left<=right){
int middle=(left+right)/2;
if(nums[middle]>target){
right=middle-1;
}else if(nums[middle]<target){
left=middle+1;
}else{
return middle;
}
}
return -1;
}
};
2.移除元素
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int n=nums.size()-1;
int slow=0;
for(int i=0;i<n;i++){
if(nums[i]!=val){
nums[slow]=nums[i];
slow++;
}
}
return slow;
}
};
3.有序数的平方
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int n=nums.size()-1;
vector<int> res(nums.size(),0);
for(int i=0,j=n;i<=j;){
if(nums[i]*nums[i]>nums[j]*nums[j]){
res[n]=nums[i]*nums[i];
n--;
i++;
}else{
res[n]=nums[j]*nums[j];
n--;
j--;
}
}
return res;
}
};