求在N个数组中出现次数最多的无素解决思路
求在N个数组中出现次数最多的无素现在有N个数组,每个数组中都有大量的int型元素,但每一个无素值只会出现一
求在N个数组中出现次数最多的无素
现在有N个数组,每个数组中都有大量的int型元素,但每一个无素值只会出现一次
现在希望能找出在N个数组中出现次数最多的元素值
E.g.a[] = {1,2,3,4,5,6};
b[] = {4,5,6};
c[] = {5};
d[] = {1};
那么应该返回5,因为它出现了3次。
讲明思想就可以,如果只给出代码,最好是C类代码或是java
[解决办法]
[解决办法]我的想法:
1:首先对N个数组按照从小到大的顺序进行排序
2:然后设立N个index(1..N)
3:每次扫描,在data[1]..data[N]中找到一个最小的数,并统计这个最小数的个数是多少
4:如果这个最小数的个数已经达到N个 那肯定是最多的 或者剩下的组数(因为随着扫描的进行,有些组数可能已经扫描结束)已经都比得到的ans大,那也没必要继续往下找了(这里是个优化)
5:对所有data[index]的值等于这次最小值的 index都自增一个
6:直到所有的index扫描结束