枚举解法:
1.先用for循环来把小时和分钟的下标的全部组合都遍历出来,之后选取最大的值来为最大时间。
2.把选取最大的值用string.format来格式化字符串为小时和分钟的形式。
class Solution {
public String largestTimeFromDigits(int[] arr) {
int ans=-1;
int length=arr.length;
//寻找小时的下标
for(int i=0;i<length;i++){
//寻找小时的下标
for(int j=0;j<length;j++){
if(j!=i){
//寻找分钟的下标
for(int k=0;k<length;k++){
if(k!=i && k!=j){
int o=6-i-j-k;
//判断小时和分钟是否符合条件并取最大值
if(arr[i]*10+arr[j]<=23 && arr[k]*10+arr[o]<=59){
ans=Math.max(ans,(arr[i]*10+arr[j])*60+(arr[k]*10+arr[o]));
}
}
}
}
}
}
//string.format来格式化字符串为小时和分钟的形式
return ans==-1?"":String.format("%02d:%02d", ans / 60, ans % 60);
}
}