80. Remove Duplicates from Sorted Array II
1 | class Solution { |
还是两个指针的原则. 一个指针表示下一个valid的num应该放在的位置, 另一个指针就是去遍历数字. 我们需要记录的是连续出现的数字的count. 如果出现count == 2且又遇到了重复的数字, 那么此时这个数字就不能放在valid的位置了, 我们只能无情地让ptr增加. 如果出现此时数字和前一个数字一样当时count是1或者当前的数字和前一个数字不同, 那么此时我们就可以让valide的位置装这个数字, 然后同时更新ptr和nextPlace. 需要注意的是如果当前数字和前一个数字不同, 我们需要reset count到1, 这个1表示的就是当前的数字连续出现频率了.
时间复杂度: O(n)
空间复杂度: O(1)