Open Tcdian opened 3 years ago
/**
* @param {number[]} A
* @return {string}
*/
var largestTimeFromDigits = function(A) {
let result = [];
const digits = [];
const maxs = [2, 23, 235, 2359];
backtracking([...A]);
return result.length > 0 ? `${result[0]}${result[1]}:${result[2]}${result[3]}` : '';
function backtracking(nums) {
if (nums.length === 0) {
if (Number(digits.join('')) >= Number(result.join(''))) {
result = [...digits];
}
return;
}
for (let i = 0; i < nums.length; i++) {
digits.push(nums[i]);
if (
(nums.length !== 2 || nums[i] < 6)
&& Number(digits.join('')) <= maxs[digits.length - 1]
) {
backtracking([...nums.slice(0, i), ...nums.slice(i + 1)]);
}
digits.pop();
}
}
};
function largestTimeFromDigits(A: number[]): string {
let result: number[] = [];
const digits: number[] = [];
const maxs = [2, 23, 235, 2359] as const;
backtracking([...A]);
return result.length > 0 ? `${result[0]}${result[1]}:${result[2]}${result[3]}` : '';
function backtracking(nums: number[]) {
if (nums.length === 0) {
if (Number(digits.join('')) >= Number(result.join(''))) {
result = [...digits];
}
return;
}
for (let i = 0; i < nums.length; i++) {
digits.push(nums[i]);
if (
(nums.length !== 2 || nums[i] < 6)
&& Number(digits.join('')) <= maxs[digits.length - 1]
) {
backtracking([...nums.slice(0, i), ...nums.slice(i + 1)]);
}
digits.pop();
}
}
};
949. Largest Time for Given Digits
给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间。
最小的 24 小时制时间是 00:00,而最大的是 23:59。从 00:00 (午夜)开始算起,过得越久,时间越大。
以长度为 5 的字符串返回答案。如果不能确定有效时间,则返回空字符串。
Example 1
Example 2
Note
A.length == 4
0 <= A[i] <= 9