1、双指针模版
初始化两个指针,通常两者设置为0或者0,length-1;(同向双指针/反向双指针)
while(j < array.length):
如果我们需要array[j],我们将其保留分配给array[i] = array[j], 并且向前移动 i , 使其准备好在下一个位置
否则跳过它,不需要移动 i 因为他的位置没有被占用
344 反转字符串
class Solution {
public:
void reverseString(vector<char>& s) {
int i=0,j= s.size()-1;
while(i < j){
if(s[i]==s[j]){
i++;
j--;
continue;
}else{
//交换值
int temp = s[i];
s[i++] = s[j];
s[j--] = temp;
}
}
}
};
26 删除有序数组中的重复字母
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int i = 0,j = 0;
while(j < nums.size()){
if(i == 0 || nums[i-1]!=nums[j]){
nums[i++] = nums[j++];
}else{
j++;
}
}
return i;
}
};