本文主要是介绍949. 给定数字能组成的最大时间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间。
最小的 24 小时制时间是 00:00,而最大的是 23:59。从 00:00 (午夜)开始算起,过得越久,时间越大。
以长度为 5 的字符串返回答案。如果不能确定有效时间,则返回空字符串。
示例 1:
输入:[1,2,3,4] 输出:"23:41"
示例 2:
输入:[5,5,5,5] 输出:""
提示:
A.length == 4
0 <= A[i] <= 9
Review:
纯逻辑思维题,用O(n)可以做但是很麻烦很恶心,好在这个题最多循环次数也不过4*3*2*1
所以暴力求解了,但尽量代码要美观一些
Code:
class Solution {public String largestTimeFromDigits(int[] A) {Arrays.sort(A);for (int i = 3; i >= 0; i--) {if (A[i] > 2) continue;for (int j = 3; j >= 0; j--) {if (j == i || (A[i] == 2 && A[j] > 3)) continue;for (int k = 3; k >= 0; k--) {if (k == i || k == j || A[k] > 5) continue;for (int l = 3; l >= 0; l--) {if (l == i || l == j || l == k) continue;return "" + A[i] + A[j] + ':' + A[k] + A[l];}}}}return "";}
}
ps:下个题别给我随到这种题了
这篇关于949. 给定数字能组成的最大时间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!