給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。
設定兩個指標left和right,left指向沒有重複項的區域的下乙個位置,right指向當前的遍歷位置。只要right位置跟right-1位置的元素值相同,就將right向後移動一位(直到不相同或者超出邊界)。若超出邊界,表明從最開始的right開始到陣列最後,元素都相同了,直接返回left即可。若沒有超出邊界,則表示right位置是乙個新的元素,將其放到left位置,並將left+1(left指的是沒有重複區的下乙個位置)。
舉個例子:[1,2,2,2,3]
(1)初始化的時候left=right=0,將right位置元素賦值給left,陣列變成[1,2,2,2,3],left=1,right=1;
(2)left=1,right=1時,right沒超出邊界,且nums[right] != nums[right-1],因此將right位置賦值給left,陣列變成[1,2,2,2,3], left=2, right=2;
(3)right=2時,nums[right]==nums[right-1],因此right不斷向後移動,直到right=4,將right賦值給left,陣列變成[1,2,3,2,3],left=3, right=5;
(4)此時right超出邊界,直接返回left。
class
solution
return left;}}
;
LeetCode 26 刪除排序陣列中的重複項
給定乙個排序陣列,你需要在原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為1...
leetcode26 刪除排序陣列中的重複項
給定乙個排序陣列,你需要在原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成 示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被修改為1...
LeetCode 26刪除排序陣列中的重複項
給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度2,並且原陣列 nums 的前兩個元素被修改為1,2...