算法:有序数组去重并返回有效数据长度

98 阅读1分钟
/**
 * 有序数组删除重复的数据,并返回有效数据长度
 * @param arr
 * @return
 */
public static int deleteSortedArrAndReturnLength(int[] arr) {
    if (arr == null || arr.length == 0) {
        return 0;
    }
    // 满指针
    int slowIndex = 0;
    for (int fastIndex = 0; fastIndex < arr.length; fastIndex++) {
        // 如果满指针和快指针的值,不相等,满指针往前走1
        if (arr[slowIndex] != arr[fastIndex]) { ;
            arr[++ slowIndex] = arr[fastIndex];
        }
    }
    return slowIndex + 1;
}
```
```