LeetCode.80 删除排序数组中的重复项 Java

匿名 (未验证) 提交于 2019-12-02 21:52:03

LeetCode.80 删除排序数组中的重复项


算法:原地挪动一般都是双指针
如果是当前判断元素elem,那么当前元素个数++,如果满足不超过两次的条件,那么将这个数保存,然后左指针+1
如果超过三个,那么只是index+1
如果当前元素已经更改,那么重新选择当前元素,index不变

public int removeDuplicates(int[] nums) {         if (nums.length <= 2) {             return nums.length;         }         int count = 0, elem = nums[0];         int lastValidIndex = 0, index = 0;         while (index < nums.length) {             if (nums[index] == elem) {                 count++;                 if (count <= 2) {                     nums[lastValidIndex++] = nums[index];                 }                 index++;             } else {                 elem = nums[index];                 count = 0;             }         }         return lastValidIndex;     }     ``` 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!