蠢哭了要 还想着每次遇到重复都把整个数组移一遍,不用啊!两个指针一个在现在无重复区域的末尾,一个在还没判断的区域的头,只要不一样就挪这一位,一样就不管,最后返回无重复区域的index+1不就是length勒马
public class Solution {
public int removeDuplicates(int[] A) {
if ( A == null || A.length == 0 )
return 0;
int pos = 1;
for ( int i = 1; i < A.length; i ++ ){
if ( A [i] != A [pos-1] ){
A [pos] = A[i];
pos ++;
}
}
return pos;
}
}
本文介绍了一种高效的方法来去除数组中的重复元素,通过使用双指针技巧,实现O(n)的时间复杂度,避免了多次数组移动,显著提高了算法效率。
297

被折叠的 条评论
为什么被折叠?



