今日打卡三道题
704. 左闭右开,左闭右闭
27.双指针,快慢指针,前后指针
977 双指针 ,快慢指针,两端指针
class Solution {
public:
int search(vector<int>& nums, int target) {
int m = nums.size();
int left =0;
int right = m-1;
while(left<=right)
{
int mid = left + (right-left)/2 ;
if(nums[mid] < target)
{
left++;
}
else if(nums[mid] > target)
{
right--;
}
else{
return mid;
}
}
return -1;
}
};
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
// int size =nums.size();
// for(int i=0;i<size;i++)
// {
// if(nums[i] == val)
// {
// for(int j =i+1;j<size;j++)
// {
// nums[j-1] =nums[j];
// }
// i--;
// size--;
// }
// }
// return size;
int slow =0;
for(int fast =0;fast<nums.size();fast++)
{
if(val != nums[fast])
{
nums[slow++] = nums[fast];
}
}
return slow;
}
};
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int k = nums.size()-1;
vector<int> result (nums.size(),0);
for(int i =0,j=nums.size()-1;i <= j;)
{
if(nums[i]*nums[i] < nums[j]*nums[j])
{
result[k--] = nums[j]*nums[j];
j--;
}
else
{
result[k--] = nums[i]*nums[i];
i++;
}
}
return result;
}
};