題目: LeetCode - 949. Largest Time for Given Digits

題目說明

給一個大小為 4 的陣列,求此陣列中的數字能組出的最大的 24 小時制的時間。

解題思路

先將陣列由小到大排序,之後使用能組出全排列的函數 next_permutation() 將每種組合都嘗試一次即可。

參考解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
string largestTimeFromDigits(vector<int>& A) {
string str;
sort(A.begin(), A.end());
do
{
int hour = A[0] * 10 + A[1], minute = A[2] * 10 + A[3];
if(!(hour < 24 && minute < 60)) continue;
str = to_string(A[0]) + to_string(A[1]) + ":" + to_string(A[2]) + to_string(A[3]);
}while(next_permutation(A.begin(), A.end()));
return str;
}
};