113th LeetCode Weekly Contest Largest Time for Given Digits

Posted 樱花落舞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了113th LeetCode Weekly Contest Largest Time for Given Digits相关的知识,希望对你有一定的参考价值。

Given an array of 4 digits, return the largest 24 hour time that can be made.

The smallest 24 hour time is 00:00, and the largest is 23:59.  Starting from 00:00, a time is larger if more time has elapsed since midnight.

Return the answer as a string of length 5.  If no valid time can be made, return an empty string.

 

Example 1:

Input: [1,2,3,4]
Output: "23:41"

Example 2:

Input: [5,5,5,5]
Output: ""

 

Note:

  1. A.length == 4
  2. 0 <= A[i] <= 9

给四个数字,组合成时间看得到的最大值是多少

全排列过去,把不符合规定的筛选掉就OK

class Solution {
public:
    string largestTimeFromDigits(vector<int>& A) {
        int x[4];
        for(int i=0;i<4;i++){
            x[i]=A[i];
        }
        string u = "";
        sort(x,x+4);
        do{
            if(x[0]>=3){
            continue;
            }
            if(x[0]==2){
                if(x[1]>3){
                    continue;
                }
            }
            if(x[2]>=6){
                continue;
            }
            
            int H,M;
            u = "";
            u += to_string(x[0]);
            u += to_string(x[1]);
            u +=:;
            u += to_string(x[2]);
            u += to_string(x[3]);
            cout<<u<<endl;
            cout<<x[0]<<" "<<x[1]<<" "<<x[2]<<" "<<x[3]<<endl;
        }while(next_permutation(x,x+4));
        return u;
    }
};

 

以上是关于113th LeetCode Weekly Contest Largest Time for Given Digits的主要内容,如果未能解决你的问题,请参考以下文章

113th LeetCode Weekly Contest Largest Time for Given Digits

123th LeetCode Weekly Contest Broken Calculator

118th LeetCode Weekly Contest Pancake Sorting

108th LeetCode Weekly Contest Minimum Falling Path Sum

116th LeetCode Weekly Contest Maximum Width Ramp

128th LeetCode Weekly Contest Complement of Base 10 Integer