考察知识点:数组、双指针
题目分析:
将有序数组删掉重复的元素,可以遍历一遍数组,用指针j指向下一个满足条件要保存下来的值。当i指针指向第一个数,或者前一个数与现在的数不相同时满足条件。
因为不满足条件时j就不会向右移动,j指针总是比i指针慢,j指针之前的数都是满足条件的数,j的值就是最终结果(0 ~ j - 1共j个数)
所用编程语言:C++
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型 */ int remove_duplicates(vector<int>& nums) { // write code here //就是除去相同的元素 int i = 0, j = 0; int size = nums.size(); for (int i = 0; i < size; i++) { if (i == 0 || nums[i - 1] != nums[i]) { nums[j] = nums[i]; j++; } } return j; } };