• 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[0],A[1],A[2],A[3]);
            check(A[0],A[2],A[1],A[3]);
            check(A[0],A[3],A[1],A[2]);
            check(A[1],A[2],A[0],A[3]);
            check(A[1],A[3],A[2],A[0]);
            check(A[2],A[3],A[1],A[0]);
            return ans;
        }
        
        void check(int a,int b,int c,int d){
            string first = best(a,b,24);
            string second = best(c,d,60);
            if(first == ""||second == "")return;
            string cand = first + ":" + second;
            if(bijiao(cand,ans))ans = cand;
            return;
        }
        
        bool bijiao(string cand,string ans){
            if(ans == "")return 1;
            int a = (cand[0]-'0')*1000 + (cand[1]-'0')*100 + (cand[3]-'0')*10 + (cand[4]-'0');
            int b = (ans[0]-'0')*1000 + (ans[1]-'0')*100 + (ans[3]-'0')*10 + (ans[4]-'0');
            return a > b;
        }
        string caonima(int num){
            string res = "0";
            res += (num+'0');
            return res;
        }
        
        string best(int a,int b,int limit){
            int res = max(a*10+b<limit ? a*10+b:-1,b*10+a<limit ? b*10+a:-1);
            if(res >= 10) return to_string(res);
            else if(res>=0 && res<10)return caonima(res);
            else return "";
        }
    };

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

  • 相关阅读:
    MFC创建dc的总结
    mini2440驱动的静态加载
    linux文件IO的操作
    mini2440led驱动分析
    关于layout_gravity和gravity的区别
    UI界面和组件(二)
    UI界面和组件(一)
    关于Android的组件使用中出现的一些问题(一)
    关于Android api文档的一些问题
    梳理7---关于java中static方法一些记录
  • 原文地址:https://www.cnblogs.com/cunyusup/p/10604938.html
Copyright © 2020-2023  润新知