日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

有序数组去重问题

發(fā)布時間:2024/9/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有序数组去重问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、有序數組去重問題
1.注意此時的數組是有序的;
2.unique函數屬于STL中比較常用的函數,它的功能是元素去重,即“刪除”序列中所有相鄰元素的重復元素。此處的刪除,并不是真正的刪除,而是指重復元素的位置被不重復的元素給占領了。由于是它刪除的是相鄰的重復元素,所以在使用前,一般都會對目標序列進行排序;
3.unique函數返回的是對于數組而言為,去重后最后一個元素的指針,而其他容器則是返回去重后最后一個元素的迭代器;
4.快慢指針的使用;
二、兩種方法實現
1.

#include<vector> #include<algorithm> using namespace std; class Solution { public:int removeDuplicates(vector<int>&nums){nums.erase(unique(nums.begin(),unique.end()),nums.end());return nums.size();} }

2.快慢指針的使用:

class Solution{ public:int removeDuplicates(int* nums,int count){int i,j;i=0;j=1;for(j=1;j<count;j++){if(nums[j]!=nums[i]){i++;nums[i]=nums[j];}}return i+1;}} int main() {Solution answer;int nums[10]={1,2,2,3,4,5,6,7,8,9};int k=answer.removeDuplicates(nums, 10);printf("%d\n", k);for (int i = 0; i < k; i++) {printf("%d,", nums[i]);}system("pause");return 0;}``` ![在這里插入圖片描述](https://img-blog.csdnimg.cn/2019061811122883.png)

總結

以上是生活随笔為你收集整理的有序数组去重问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。