查找数组当中出现次数最多的元素

查找数组中元素出现次数最多的元素,不同于一般的排序和使用Map的办法。可参考
1
#include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 int a[8] = {1,2,3,4,3,2,5,3}; 7 int len = sizeof(a)/sizeof(a[0]); 8 9 int targt = a[0];//哨兵取数组的第一个值,当然也可以取其余的值 10 int times = 1;//记录元素的次数 将targt和数组中的其余元素进行比较 如果等于times加一否则减一 当times = 0 的时候,targt的值换做数组的下一个值 11 12 for(int i = 0; i < len; i++) 13 { 14 if(times == 0) 15 { 16 targt = a[i]; 17 times = 1; 18 } 19 else if(targt == a[i]) //出现的次数越多times的值越大 20 { 21 times++; 22 } 23 else { 24 times--; 25 } 26 } 27 28 cout<<targt<<' '; 29 30 }

 

posted @ 2020-09-15 18:12  墨酒儿  阅读(914)  评论(0)    收藏  举报