給定排序陣列a,需要在原地刪除重複出現的元素,使得每個元素只出現元素一次,返回移除後陣列的新長度
leetcode原題位置刪除排序陣列中的重複項
這裡使用的是雙指標,利用快指標快速遍歷所有元素,慢指標替換所有不相同的元素
思路:這裡使用兩個指標,slow和fast兩個指標,fast指標用於遍歷陣列中的所有元素,而slow指標用於確定陣列中所有不相同的元素,關鍵語句是
if
(a[slow]
!= a[fast]
)
用於判斷slow位置的元素與fast位置是否相同,如果相同就繼續遍歷,當不相同的時候就將fast位置對應的元素複製到slow + 1的位置上同時更新slow 為 slow + 1,然後繼續迭代遍歷完整**如下
public
static
intgetnum
(int
a)fast++;}
return slow +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。...