1736. 替换隐藏数字得到的最晚时间
-
思路:贪心,从最大值往最小值找,考虑两种特殊情况,第一位:若第二位的值已经确定,且值落在区间 [4,9]中时,第一位的值最大只能为 1,否则最大可以为 2;
第二位:若第一位的值已经确定,且值为 2 时,第二位的值最大为 3,否则为 9; -
代码:
public String maximumTime(String time) { char[] arr = time.toCharArray(); if (arr[0] == '?') { arr[0] = ('4' <= arr[1] && arr[1] <= '9') ? '1' : '2'; } if (arr[1] == '?') { arr[1] = (arr[0] == '2') ? '3' : '9'; } if (arr[3] == '?') { arr[3] = '5'; } if (arr[4] == '?') { arr[4] = '9'; } return new String(arr); }