681. Next Closest Time
2017-09-24 11:01
369 查看
Given a time represented in the format "HH:MM", form the next closest time by reusing the current digits. There is no limit on how many times a digit can be reused.
You may assume the given input string is always valid. For example, "01:34", "12:09" are all valid. "1:34", "12:9" are all invalid.
Example 1:
Example 2:
思路:与其思考怎么变换,不如直接求出所有可能再一个个计算来的快
You may assume the given input string is always valid. For example, "01:34", "12:09" are all valid. "1:34", "12:9" are all invalid.
Example 1:
Input: "19:34" Output: "19:39" Explanation: The next closest time choosing from digits 1, 9, 3, 4, is 19:39, which occurs 5 minutes later. It is not 19:33, because this occurs 23 hours and 59 minutes later.
Example 2:
Input: "23:59" Output: "22:22" Explanation: The next closest time choosing from digits 2, 3, 5, 9, is 22:22. It may be assumed that the returned time is nex a6b2 t day's time since it is smaller
思路:与其思考怎么变换,不如直接求出所有可能再一个个计算来的快
import java.util.HashSet; import java.util.Set; class Solution { public String nextClosestTime(String time) { Set<Integer> s = new HashSet<Integer>(); s.add(time.charAt(0)-'0'); s.add(time.charAt(1)-'0'); s.add(time.charAt(3)-'0'); s.add(time.charAt(4)-'0'); Set<String> ss = new HashSet<String>(); for(int i : s) for(int j : s) for(int k : s) for(int l : s) ss.add(""+i+j+":"+k+l); int min = Integer.MAX_VALUE; String ret = ""; for(String t : ss) { int inteval = get(t, time); if(inteval < min) { min = inteval; ret = t; } } return ret; } private int get(String t, String time) { int h1 = Integer.valueOf(t.substring(0, 2)), h2 = Integer.valueOf(time.substring(0, 2)); int m1 = Integer.valueOf(t.substring(3, 5)), m2 = Integer.valueOf(time.substring(3, 5)); if(h1>=24||h2>=24||m1>=60||m2>=60) return Integer.MAX_VALUE; int diff = (h1-h2)*60 + (m1-m2); if(diff <= 0) diff += 24*60; return diff; } }
相关文章推荐
- [Leetcode] 681. Next Closest Time 解题报告
- [LeetCode] 681. Next Closest Time 下一个最近时间点
- LeetCode 681. Next Closest Time(java)
- 681. Next Closest Time
- leetcode 681 Next Closest Time
- LeetCode Next Closest Time
- Next Closest Time问题及解法
- [LeetCode] Next Closest Time 下一个最近时间点
- JQuery包装集size,length,index,slice,find,filter,is,children,next,nextAll,parent,parents,closest,siblings,add,end,andSelf的用法
- jquery遍历节点 children(),next(),prev(),siblings()closest()
- oracle 日期常用函數 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)
- Next Gen Real-time Streaming with Storm-Kafka Integration
- hibernate错误:at org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge.nextTimestamp
- Real-time stream processing: The next step for Apache Flink
- oracle 日期常用函數 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)
- oracle 日期常用函數 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)
- oracle 日期常用函数 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)
- lwIP协议栈timeouts->next->time赋值导致BusFault异常的解决办法
- jquery遍历元素children、find、parent、parents、parentsUntil、next、prev、siblings、closest、filter、not
- oracle 日期常用函數 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)