給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。
不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o(1) 額外空間的條件下完成。
作為萌新,我第一遍做的時候,我的思路就是再建立乙個新陣列。
將原來的陣列的第乙個元素放進去,然後拿原來陣列中元素與新陣列中的元素比較,不同就放進去,相同就不放進去。
這樣新陣列就會是乙個沒有重複的陣列。
但是後來我才發現,人家需要原地刪除,即用指標。
雙指標法
雙指標其實就是乙個快指標,乙個慢指標。
快指標其實我們可以看成我上面說的舊陣列,慢指標看成新陣列。
如果快指標與慢指標的元素相同,快指標往後移動,慢指標不動。
當快指標與慢指標不同時,這就是我們需要加進去的元素。
慢指標移動一位,並且元素變為快指標的元素。
以此類推
最後返回新陣列的大小。
**如下:
int
removeduplicates
(vector<
int>
& nums)
}return i +1;
}
剛開始學習c++難免會有一些錯誤,請各位大佬指出。 leetcode刷題 c 演算法 1雙指標
首先介紹c 中的指標語法表示和迭代器的使用 指標 1int h 5 int p h 2 int p newint p 1001 迭代器 vector int aa vector int iterator ie aa.begin 然後介紹雙指標 雙指標,指的是在遍歷物件的過程中,不是普通的使用單個指標...
C語言雙指標
雙指標又叫二重指標,常常用於解決在不開闢額外記憶體空間的情況下交換陣列或字串中元素的相對位置的問題。這些是我目前為止遇到的雙指標用法 1.可以用來原地修改字串。兩個指標的運動方向相反 編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。輸入 h e l l o 輸出...
雙指標 雙索引 演算法介紹 c
雙指標演算法在一些陣列題中很常用,它指的是一類使用兩個指標遍歷陣列求解問題的方法,這裡的指標是廣義上的,有可能是c c 中的指標,也有可能僅僅是兩個整數下標。雙指標演算法有兩種形式,一種被稱為對撞指標,兩個指標從兩端向中間靠攏 另一種是快慢指標,兩個指標向統一方向運動,滑動視窗方法就是一種常用的快慢...