标签:
题目描述:一个数组大小N,由0到N-1之间的数组组成,或重复,或不存在,请统计每个数字出现的次数。
#include<iostream> using namespace std; //借用辅助空间,不破坏原数组(空间换时间) void ParseArr(int *a, int l,int *b) { for(int i=0;i<l;++i) { b[a[i]%l]++; } } //在原数组上面进行记录(时间换空间) void parseArr(int arr[], int n) { for (int i=0; i<n; i++) { arr[arr[i] % n] += n; } for ( i=0; i<n; i++) { arr[i] /= n; } } int main() { int a[]={1,1,4,4,6,3,5,7}; //int b[10]={0}; //ParseArr(a, sizeof(a)/sizeof(a[0]),b); //for(int i=0;i<sizeof(a)/sizeof(a[0]);++i) //cout<<i<<"出现了"<<a[i]<<"次"<<"\n"; parseArr( a,sizeof(a)/sizeof(a[0])); for(int i=0;i<sizeof(a)/sizeof(a[0]);++i) cout<<i<<"出现了"<<a[i]<<"次"<<"\n"; }
标签:
原文地址:http://blog.csdn.net/kai8wei/article/details/45672355