1. 程式人生 > >leetcode (Largest Time for Given Digits)

leetcode (Largest Time for Given Digits)

Title: Largest Time for Given Digits    949

Difficulty:Easy

原題leetcode地址:  https://leetcode.com/problems/largest-time-for-given-digits/

 

1.  見程式碼註釋

時間複雜度:O(n^3),三層for迴圈。

空間複雜度:O(1),沒有申請額外空間。

    /**
     * 3層迴圈,注意每一個數不相等,同時最後一個數就是經過3層迴圈後剩餘的
     * @param A
     * @return
     */
    public static String largestTimeFromDigits(int[] A) {

        int res = -1;

        for (int i = 0; i < A.length; i++) {
            for (int j = 0; j < A.length; j++) {
                if (i != j) {
                    for (int k = 0; k < A.length; k++) {
                        if (k != i && k != j) {
                            int l = 6 - i - j - k;
                            int h = 10 * A[i] + A[j];
                            int m = 10 * A[k] + A[l];
                            if (h < 24 && m < 60) {
                                res = Math.max(res, h * 60 + m);
                            }
                        }
                    }
                }
            }
        }

        return res >= 0 ? String.format("%02d:%02d", res / 60, res % 60) : "";

    }