leetcode 刪除排序陣列中的重複項 移除元素

2021-09-24 11:26:00 字數 1226 閱讀 1138

重點在審題:

1 排序陣列

2 原地「刪除」重複元素,「刪除」不一定指刪除,可以是替換

3 不需要考慮陣列中超出新長度後面的元素。(返回的是乙個陣列長度,後台根據長度自動擷取)

class solution 

return nums.size();}};

本來想借鑑stl原始碼剖析中的一段**,但是失敗了,也不知道錯在**,應該是迭代器的問題。。。。

class solution {

public:

int removeduplicates(vector& nums) {

if(nums.size()<=1)

return nums.size();

int i=0;

for(int j=1;j當nums[i]與nums[j]相等時,就把j自增,否則,我們就找到了不同於nums[i]的第乙個數字,為了保留乙個重複數字,就把i增1,然後被nums[j]覆蓋掉即可。直到j越界。

其實跟第一題滿相似的,但是還是不會遷移。。。

class solution {

public:

int removeelement(vector& nums, int val) {

if(nums.size()==0)

return 0;

int i=0;

for(int j=0;jj是快指標,i是慢指標。當nums[j]不是要刪除的值時,把該值賦給num[i],即覆蓋,i++,當num[j]是要刪除的值,快指標繼續走,直到碰到不是就開始覆蓋。

class solution {

public:

int removeelement(vector& nums, int val) {

if(nums.size()==0)

return 0;

int j=nums.size();

int i;

for(i=0;i遍歷陣列,如果是val,就把val與後面的元素調換位置,為了防止後面的元素也是val,就先不把i增1。這適合val值得個數比較少的情況。

LeetCode 陣列 刪除排序陣列中的重複項

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

Leetcode題解026 刪除排序陣列中的重複項

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

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

給定乙個有序陣列,你需要原地 刪除其中的重複內容,使每個元素只出現一次,並返回新的長度。不要另外定義乙個陣列,您必須通過用 o 1 額外記憶體原地修改輸入的陣列來做到這一點。示例 給定陣列 nums 1,1,2 你的函式應該返回新長度 2,並且原陣列nums的前兩個元素必須是1和2 不需要理會新的陣...