public class Solution
{
public string LargestTimeFromDigits(int[] A)
{
var list = Perm(A, );
var maxHour = -;
var maxMinute = -;
foreach (var nums in list)
{
var hour = nums[].ToString() + nums[].ToString();
var minute = nums[].ToString() + nums[].ToString();
var strtime = hour + ":" + minute;
if (ValidTime(strtime))
{
var Inthour = Convert.ToInt32(hour);
var IntMinute = Convert.ToInt32(minute);
if ((Inthour > maxHour) || (Inthour == maxHour && IntMinute >= maxMinute))
{
maxHour = Inthour;
maxMinute = IntMinute;
}
}
}
if (maxHour >= )
{
var tempHour = maxHour.ToString();
var tempMinute = maxMinute.ToString();
if (tempHour.Length == )
{
tempHour = "" + tempHour;
}
if (tempMinute.Length == )
{
tempMinute = "" + tempMinute;
}
return tempHour + ":" + tempMinute;
}
else
{
return "";
}
} private void Swap<T>(ref T a, ref T b)
{
T t = a;
a = b;
b = t;
}
private IEnumerable<int[]> Perm(int[] arr, int pos)
{
if (pos == arr.Length)
{
yield return arr;
}
for (int i = pos; i < arr.Length; ++i)
{
Swap(ref arr[i], ref arr[pos]);
foreach (var j in Perm(arr, pos + )) yield return j;
Swap(ref arr[i], ref arr[pos]);
}
} /// <summary>
/// 判断时间格式是否合法
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
private bool ValidTime(string time)
{
var part = time.Split(':');
var hour = Convert.ToInt32(part[]);
var minute = Convert.ToInt32(part[]);
if (hour >= && hour <= && minute >= && minute <= )
{
return true;
}
return false;
}
}

这题又长又卵,没意思。

leetcode949的更多相关文章

  1. [Swift]LeetCode949. 给定数字能组成的最大时间 | 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 t ...

  2. Leetcode949. Largest Time for Given Digits给定数字能组成最大的时间

    给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间. 最小的 24 小时制时间是 00:00,而最大的是 23:59.从 00:00 (午夜)开始算起,过得越久,时间越大. ...

随机推荐

  1. Springboot集成mybatis(mysql),mail,mongodb,cassandra,scheduler,redis,kafka,shiro,websocket

    https://blog.csdn.net/a123demi/article/details/78234023  : Springboot集成mybatis(mysql),mail,mongodb,c ...

  2. Sort An Unsorted Stack

    Given a stack of integers, sort it in ascending order using another temporary stack. Examples: Input ...

  3. 12 Factor CLI Apps

    CLIs are a fantastic way to build products. Unlike web applications, they take a small fraction of t ...

  4. StreamSets 相关文章

    相关streamsets 文章(不按顺序) 学习视频-百度网盘 StreamSets 设计Edge pipeline StreamSets Data Collector Edge 说明 streams ...

  5. C#:消息队列应用程序

    Carl NolanMicrosoft Corporation 摘要:本文概述一种用于处理若干消息队列的 Windows 服务解决方案,重点介绍 .NET 框架和 C# 应用程序. 下载 CSharp ...

  6. 日志挖掘(logminer)

    转. 如何使用logminer分析Oracle   联机日志         笔者在工作中经常遇到这样的情况:为了追踪数据的变化,需要知道某个表或者表中的某行数据是什么时候被修改的,以及修改前的内容. ...

  7. vue-cli 打包报错:Unexpected token: punc (()

    vue-cli 打包报错: ERROR in static/js/vendor.ed7d2353f79d28a69f3d.js from UglifyJs Unexpected token: punc ...

  8. HTTP协议中的长连接、短连接、长轮询、短轮询

    长连接.短连接,指的是TCP连接.长连接是为了复用TCP连接. 长轮询中,服务器如果检测到库存量没有变化的话,将会把当前请求挂起一段时间(这个时间也叫作超时时间,一般是几十秒).在这个时间里,服务器会 ...

  9. AngularJs $scope 里面的$apply 方法和$watch方法

    Angular $scope 里面的$apply 方法 Scope提供$apply方法传播Model变化 <!DOCTYPE html> <html> <head> ...

  10. Java 接口 interface implements

    接口定义了一系列的抽象方法和常量,形成一个属性集合. 接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口. 实现接口的类必须实现接口中定义的抽象方法,具体实现细节由类自己定义.可以说接口定 ...