首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 算法:統計 n 個正整數中 0-9 各數字出現頻率的最高與最低

     編輯:程式設計綜合問答

給定 n 個正整數,需找出組成這些數字所用的 0~9 十個數字中,出現次數最多與最少的數字。這是一個典型的數字頻率統計問題。

核心思路

使用長度為 10 的整型陣列 count[10] 記錄每個數字(0-9)的出現次數。遍歷每個輸入整數,通過取模(% 10)與除以 10(/ 10)迭代提取每一位數字,累加對應計數器。最後遍歷 count 陣列找出最大值與最小值對應的數字即可。

代碼實現(Java)

public static void findDigitFrequency(int[] nums) {
    int[] count = new int[10];
    for (int num : nums) {
        int temp = num;
        if (temp == 0) { // 特殊處理數字 0 本身
            count[0]++;
            continue;
        }
        while (temp > 0) {
            int digit = temp % 10;
            count[digit]++;
            temp /= 10;
        }
    }
    int maxDigit = 0, minDigit = 0;
    for (int d = 1; d < 10; d++) {
        if (count[d] > count[maxDigit]) maxDigit = d;
        if (count[d] < count[minDigit]) minDigit = d;
    }
    System.out.println("出現最多: " + maxDigit + " (" + count[maxDigit] + "次)");
    System.out.println("出現最少: " + minDigit + " (" + count[minDigit] + "次)");
}

複雜度分析

  • 時間複雜度:O(N * log₁₀M),N 為數字個數,M 為最大數字值。
  • 空間複雜度:O(1),固定 10 個計數器。

此方法簡單高效,適合處理大量整數的數字頻率統計場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved