教育网站建设的必要性,wordpress黑客,做pc端网站市场,wordpress 平铺相册1. 题目
给定一个由 4 位数字组成的数组#xff0c;返回可以设置的符合 24 小时制的最大时间。
最小的 24 小时制时间是 00:00#xff0c;而最大的是 23:59。 从 00:00 #xff08;午夜#xff09;开始算起#xff0c;过得越久#xff0c;时间越大。
以长度为 5 的字符…1. 题目
给定一个由 4 位数字组成的数组返回可以设置的符合 24 小时制的最大时间。
最小的 24 小时制时间是 00:00而最大的是 23:59。 从 00:00 午夜开始算起过得越久时间越大。
以长度为 5 的字符串返回答案。如果不能确定有效时间则返回空字符串。
示例 1
输入[1,2,3,4]
输出23:41示例 2
输入[5,5,5,5]
输出提示
A.length 4
0 A[i] 9来源力扣LeetCode 链接https://leetcode-cn.com/problems/largest-time-for-given-digits 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
数据量很小直接暴力查找
class Solution {
public:string largestTimeFromDigits(vectorint A) {int ans -1, i, j, k, l, hours, mins;string h,m;for(i 0; i 4; i)for(j 0; j 4; j)if (j ! i)for(k 0; k 4; k)if (k ! i k ! j){l 6 - i - j - k;// 四个下标的数值 0,1,2,3 和为 6hours 10*A[i] A[j];mins 10*A[k] A[l];if(hours 24 mins 60 (hours*60mins ans)){ans hours*60 mins;h hours10 ? to_string(hours) : (0to_string(hours));m mins10 ? to_string(mins) : (0to_string(mins));}}if(ans 0) return h:m;return ;}
};4 ms 8.3 MB 降序获得最大的排列看组成的时间是否合法合法就返回prev_permutation上一个更小的组合
class Solution {
public:string largestTimeFromDigits(vectorint A) {sort(A.begin(), A.end(), greaterint());//降序排列vectorstring ans;string s;int i;do{ //合法的时间if( ((A[0]2 A[1]4) || A[0]2) A[2]6 ) { //小时 2X 或者 0X, 1X 且 分钟 第一位 6s ;for(i 0; i 4; i)s (A[i]0);s.insert(2, :);return s;}}while(prev_permutation(A.begin(), A.end()));//更小的排列return ;}
};0 ms 8.2 MB