刪除排序陣列中的重複項

2021-10-06 17:39:03 字數 844 閱讀 2464

題目描述:給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。

不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o(1) 額外空間的條件下完成。

思路:1、如果陣列為空或者長度為0直接返回0。設定i,j分別指向安排好的部分的尾結點和當前需要判斷的節點,r是每次更新陣列後的陣列新的長度。

2、雙指標法,i是安排好的部分的尾結點,讓j一直往前走,一旦與i位置的值不同,就把j位置上的數值納入安排好的部分,最後返回i+1,因為陣列是從0開始計數字置的。

**展示:

1、

/**

* @classname solution

* @description

* @author administrator

* @date 2020/6/1 22:24

* @version 1.0

**/class solution

r = r - t;}}

return r;

}}

2、

/**

* @classname solution1

* @description

* @author administrator

* @date 2020/6/1 22:38

* @version 1.0

**/public class solution1

int i = 0;

for (int j = 1; j < nums.length; j++)

}return i + 1;

}}

刪除排序陣列中的重複項

題目描述 給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 給定陣列 nums 1,1,2 函式應該返回新的長度2,並且原陣列 nums 的前兩個元素被修改為...

刪除排序陣列中的重複項

給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為 1...

刪除排序陣列中的重複項

給定陣列 nums 1,1,2,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為 1,2。你不需要考慮陣列中超出新長度後面的元素。給定 nums 0,0,1,1,1,2,2,3,3,4 函式應該返回新的長度 5,並且原陣列 nums 的前五個元素被修改為 0,1,2,3,4。...