📌  相关文章
📜  不使用数组字符串查找最频繁的数字(1)

📅  最后修改于: 2023-12-03 15:06:12.033000             🧑  作者: Mango

不使用数组字符串查找最频繁的数字

在处理数字的过程中,可能需要查找最频繁出现的数字。传统的做法是使用数组或者字符串来存储这些数字,然后通过遍历数组或字符串来找出哪个数字出现的次数最多。但是在奇特的情况下,可能会面临以下几个问题:

  • 数字集合过大,无法使用数组或者字符串进行存储;
  • 数字集合在不断变化,无法确定数组或字符串的大小。

针对以上情况,可以采用以下解决方案。

假设需要查找最频繁出现的数字,可以创建一个 HashMap 数据结构,用于存储每个数字出现的次数,并对每个数字进行计数。

Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
    if (map.containsKey(nums[i]))
        map.put(nums[i], map.get(nums[i]) + 1);
    else
        map.put(nums[i], 1);
}

在遍历整个 HashMap 结构之后,可以通过遍历 HashMap 来找到出现次数最多的数字。具体的做法是,一边遍历 HashMap,一边记录出现次数最多的数字。

int maxNum = nums[0];
int maxCount = 1;
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
    int value = entry.getValue();
    int key = entry.getKey();
    if (value > maxCount) {
        maxNum = key;
        maxCount = value;
    }
}

这里的 maxNum 即为出现次数最多的数字。

通过这种算法,即可找到在不使用数组或者字符串的情况下,查找数字集合中出现最频繁的数字。