今天遇到一个非常棒的题目,基本上暴力破解只能用if else嵌套,但是从评论区见到了比官方答案更标准的答案,过于精妙,鉴于今晚状态不好,记录下来,明日仔细研究之后再来更新,贴上题目和最佳题解:
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; return "" + A[i] + A[j] + ':' + A[k] + A[6-i-j-k]; } } } return ""; } }
太巧了,没有普适性,我建议全身分解