-
题目描述:
判断数组中是否有重复元素,如果有重复元素输出Yes
,否者输出No
。 -
解题思路:
采用计数器原理。 -
例:
输入:1,3,2,5,6,4
输出:Yes
#include <iostream>
using namespace std;
void print(bool b){
if(b){
cout << "Yes" << endl;
}else{
cout << "No" << endl;
}
}
bool Ans(int a[], int n){
int *p = new int[n];
//置0
for(int i = 0; i < n; i++)
p[i] = 0;
//开始计数
for(int i = 0; i < n; i++)
p[a[i] - 1]++;
//判断是否有重复
for(int i = 0; i < n; i++)
if(p[i] > 1){
return true;
}
delete [] p;
return false;
}
int main(){
int a[]={1,3,4,5,2,6}; //No
int b[]={1,3,5,6,4,6,7}; //Yes
print(Ans(a, 6));
print(Ans(b, 7));
return 0;
}