# 0681. Next Closest Time
###### tags: `Leetcode` `FaceBook` `Medium`
Link: https://leetcode.com/problems/next-closest-time/
## 思路
参考[这个网址](https://leetcode.com/problems/next-closest-time/discuss/107773/Java-AC-5ms-simple-solution-with-detailed-explaination)

## Code
```java=
class Solution {
public String nextClosestTime(String time) {
char[] result = time.toCharArray();
char[] digits = new char[]{result[0], result[1], result[3], result[4]};
Arrays.sort(digits);
result[4] = findNext(digits, '9', result[4]);
if(result[4] > time.charAt(4)) return new String(result);
result[3] = findNext(digits, '5', result[3]);
if(result[3] > time.charAt(3)) return new String(result);
result[1] = findNext(digits, result[0]=='2'?'3':'9', result[1]);
if(result[1] > time.charAt(1)) return new String(result);
result[0] = findNext(digits, '2', result[0]);
return new String(result);
}
public char findNext(char[] digits, char upperLimit, char curr){
int idx = 0;
boolean find = false;
while(idx < digits.length){
if(curr == digits[idx]){
find = true;
}
else{
if(find) break;
}
idx++;
}
if(idx == digits.length || digits[idx] > upperLimit) return digits[0];
else return digits[idx];
}
}
```