美文网首页
取数组中出现频次最高的元素算法

取数组中出现频次最高的元素算法

作者: heheworld | 来源:发表于2018-10-30 22:45 被阅读0次

今天去面试,居然让我写算法,
都十多年没看过算法了,平时工作的时候也不是很重视,当然是歇菜了。
想起那个算法题,其实很简单,哎,记录下吧。
问题:
一个char数组,
char[] chars = {'a', 'f', 'c', 'a', 'a', 'f', 'f', 'a', 'g', 'm', 'm', 'g', 'h', 'f', 'z','f'};
要求通过sort方法,得出出现频次最高的char

粗糙的算法如下:

    private char sort() {
        // 最大值,如果要出现最多那个char的频次数值,需要加1,因为这个max不包含自身
        int max = 0;
        //返回用的char
        char result = 0;
        for (int i = 0; i < chars.length; i++) {
            int submax = 1;//当前循环最大值
            for (int j = i + 1; j < chars.length; j++) {
                if (chars[i] == chars[j]) {
                    submax += 1; //当char相等,当前循环最大值+1
                }
            }
            if (submax > max) {
                max = submax;
                result = chars[i];
            }
        }
        return result;
    }

有个问题,如果有两个char频次一样的,应该是取第一个。
先记录下,后续有效率更高的,再来更新。

哎,平时要多做记录积累啊。。

相关文章

  • 取数组中出现频次最高的元素算法

    今天去面试,居然让我写算法,都十多年没看过算法了,平时工作的时候也不是很重视,当然是歇菜了。想起那个算法题,其实很...

  • 排序算法:计数排序O(n+m)

    核心思想 计数排序不是基于比较的排序算法,算法的核心有3点:统计原数组中每个元素出现的次数。以原数组中的元素为下标...

  • 查找一个数组中出现频次最多的相同元素

    给出一个数组['heloo', 'helo', 'lofthe'],期望得到每个数组元素中出现频次最多且长度最长的...

  • leetcode 初级算法 数组(C++)

    初级算法 数组 1.从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一...

  • 排序算法之快速排序

    排序算法之快速排序 参考自算法(第四版),快速排序 算法思想 对数组中取一个切分元素,下文简称pivot 然后使得...

  • 数组

    编程程序,找出下列数组中出现频率最高的元素。

  • 计数排序与计数排序的优化

    一.计数排序 算法原理 1.找出待排序的数组中最大和最小的元素2.统计数组中每个值为i的元素出现的次数,存入数组c...

  • JavaScript (练习题)

    1.题目要求图片.png答案 2.从数组中选出不重复的数字 3.找出一个数组中元素出现频率最高的元素 4.从数组中...

  • iOS 从数组随机取元素

    数组随机取元素 — 不考虑重复情况 数组随机取元素 — 去除重复元素

  • 数组

    本节练习编程程序,找出下列数组中出现频率最高的元素。

网友评论

      本文标题:取数组中出现频次最高的元素算法

      本文链接:https://www.haomeiwen.com/subject/ghgntqtx.html