數據結構和算法之移除數組重複值

思路

  1. 利用雙指針
  2. 前後指針相同,前指針向後移動
  3. 如果不同,前和後指針都向後移動,同時將後指針的值賦值到前指針的下標中。
/**
 * 移除排序數組中重複的值,返回移除後的大小
 * Author : BlueSky 2019.11.05
 * exe:
 * 給定 nums = [0,0,1,1,1,2,2,3,3,4],
 * 函數應該返回新的長度 5, 並且原數組 nums 的前五個元素被修改爲 0, 1, 2, 3, 4。
 */
public class RemoveDuplicateSortArr {
    public int remove(int[] arr){
        if (arr.length == 0){
            return 0;
        }
        int pre = 0, cur = 0, n = arr.length;
        while (cur < n) {
            if (arr[pre] != arr[cur]){
            	// 後指針向後移動
                ++pre;
                // 並且賦值
                arr[pre] = arr[cur];
            }
            cur++;
        }
        return pre + 1;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章