演算法 1 刪除排序陣列中的重複項

2021-10-19 23:21:07 字數 978 閱讀 7502

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

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

給定陣列 nums = [1,1,2,2,3],

函式應該返回新的長度三, 並且原陣列 nums 的前三個元素被修改為 1, 2,3。

你不需要考慮陣列中超出新長度後面的元素

首先我們讓慢指標等於0,第0個索引是第乙個元素一定不會重複,我們通過設定乙個慢指標指向不會重複的索引號,再通過乙個快指標(進行遍歷)與慢指標進行比較,如果值不相等,說明這個元素也是我們要找的不重複的值,這時候我們把慢指標索引加一,然後將慢索引位置處的元素與快索引處的值進行交換。

如圖:

**實現:

class

solution

}return a+1;

//因為我們記錄的是索引,而要求是返回陣列的長度,所以加一

}}

這鐘方法可以提高我們的速度,因為我們通過多乙個指標減少了比較的次數。具體做法是,因為我們第乙個元素一定是可以記錄下來在不重複的這個陣列中的,因此我們首先讓a指標等於0,然後讓a指標來記錄可以記錄在不重複陣列中的末尾索引,讓b指標初始值為1,和b指標下面的乙個指標進行比較如果不相同,就讓a指標加一併把a指標位置處的值與b指標下面的乙個指標的值進行互換,這樣保證了a指標指向的值永遠是不重複的值。

如圖:**實現:

class

solution

}return a+1;

//因為我們記錄的是索引,而要求是返回陣列的長度,所以加一

}}

1 從排序陣列中刪除重複項

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

初級演算法 1 從排序陣列中刪除重複項

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

刪除排序陣列中的重複項

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