题解 | #草原上的牛群#
草原上的牛群
https://www.nowcoder.com/practice/0661aa40ac8e48f4906df7aa24c3db90
知识点
双指针
思路
用i和j分别维护当前遍历到的位置以及当前放置的位置。
当nums[i]!=nums[i-1]时,将其放在nums[j]处,同时j++。否则j不变。i始终保持右移。
最后数组中就去除了所有重复数字,并且j即为数组的大小。
代码c++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int remove_duplicates(vector<int>& nums) {
// write code here
int j=0;
for(int i=0;i<nums.size();i++)
{ if(i==0)
{
nums[j]=nums[i];
j++;
}
else if(nums[i]!=nums[i-1])
{
nums[j]=nums[i];
j++;
}
}
return j;
}
};