用 C++ 編寫一個程式,從給定的素數陣列中刪除重複元素。
假設我們給定一個大小為 N 的陣列,其中包含所有素數。任務是找到給定陣列中的重複元素並將其刪除。例如,
輸入 1 −
N = 8
arr[ ] = { 2 ,2 ,2 ,3 ,3 ,3 ,5 ,7 }輸出 −
2 3 5 7
說明 − 在給定的素數陣列中,'2' 和 '3' 有些重複,刪除重複元素後,輸出將為 2 3 5 7。
輸入 2 −
N = 5
arr[ ] = { 3, 2, 7, 5, 5}輸出 −
3 2 7 5
說明 − 在給定的素數陣列中,'5' 有些重複,刪除重複元素後,輸出將為 3 2 7 5。
解決此問題的方法
在此問題中,我們使用一個數字陣列來驗證數字是否已在陣列中訪問過。如果陣列元素未被訪問,則將其設為 '1' 並將其插入結果,否則無需插入元素。
輸入大小為 N 的向量陣列及其元素。
一個整型向量陣列 removeDuplicates(vector<int>&arr, int size),它接收一個數組及其大小作為輸入。
一個整型陣列,我們用它來檢測和驗證當前元素是否已被訪問。如果在插入時陣列中的任何元素已被訪問(即 '1'),則我們不會將該特定元素推入向量中,否則將元素推入向量陣列。
結果向量將僅包含唯一的素數。
示例
#include<bits/stdc++.h>
using namespace std;
vector<int>removeDuplicates(vector<int>&arr, int size){
int num[100] ={0};
vector<int> vec;
for(int i=0;i<size;i++){
if(num[arr[i]] ==0){
num[arr[i]]=1;
vec.push_back(arr[i]);
}
}
return vec;
}
int main(){
int N= 8;
vector<int>arr={2,2,2,3,3,3,5,7};
vector<int>answer= removeDuplicates(arr,N);
for(int i=0;i<answer.size();i++){
cout<<removeDuplicates(arr,N)<<endl;
}
return 0;
}輸出
如果我們執行以上程式碼,它將列印輸出為:
2 3 5 7
如果我們刪除重複項,輸出將為 2 3 5 7。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP