Leetcode 949. 给定数字能组成的最大时间

949. 给定数字能组成的最大时间

 显示英文描述
 
  • 用户通过次数125
  • 用户尝试次数213
  • 通过次数127
  • 提交次数774
  • 题目难度Easy

给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间。

最小的 24 小时制时间是 00:00,而最大的是 23:59。从 00:00 (午夜)开始算起,过得越久,时间越大。

以长度为 5 的字符串返回答案。如果不能确定有效时间,则返回空字符串。

示例 1:

输入:[1,2,3,4]
输出:"23:41"

示例 2:

输入:[5,5,5,5]
输出:""

提示:

  1. A.length == 4
  2. 0 <= A[i] <= 9
class Solution {
public:
string ans = "";
string largestTimeFromDigits(vector<int>& A) {
check(A[],A[],A[],A[]);
check(A[],A[],A[],A[]);
check(A[],A[],A[],A[]);
check(A[],A[],A[],A[]);
check(A[],A[],A[],A[]);
check(A[],A[],A[],A[]);
return ans;
} void check(int a,int b,int c,int d){
string first = best(a,b,);
string second = best(c,d,);
if(first == ""||second == "")return;
string cand = first + ":" + second;
if(bijiao(cand,ans))ans = cand;
return;
} bool bijiao(string cand,string ans){
if(ans == "")return ;
int a = (cand[]-'')* + (cand[]-'')* + (cand[]-'')* + (cand[]-'');
int b = (ans[]-'')* + (ans[]-'')* + (ans[]-'')* + (ans[]-'');
return a > b;
}
string caonima(int num){
string res = "";
res += (num+'');
return res;
} string best(int a,int b,int limit){
int res = max(a*+b<limit ? a*+b:-,b*+a<limit ? b*+a:-);
if(res >= ) return to_string(res);
else if(res>= && res<)return caonima(res);
else return "";
}
};

_再也不会做这种恶心死了的题,烦死了快,各种边界条件,输出格式!!

上一篇:junit测试Android项目


下一篇:事件驱动的简明讲解(python实现)