class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int first = 1;
int second = 1;
int n = nums.size();
while (second < n)
{
if (nums[second] == nums[first - 1])
{
second++;
}
else
{
nums[first] = nums[second];
first++;
second++;
}
}
return n > 0 ? first : 0;
}
};
class Solution {
public:
int search(vector<int>& nums, int target) {
int n = nums.size();
int i = 0;
while (i < n && nums[i] < target && nums[i] >= nums[0]) i++;
if (i < n && nums[i] == target) return i;
i = n - 1;
while (i >= 0 && nums[i] > target && nums[i] <= nums[n - 1]) i--;
if (i >= 0 && nums[i] == target) return i;
else return -1;
}
};