| 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | import java.util.*;public class maxTime { public String solution(int A, int B, int C, int D){ List<Integer> digits_4 = new ArrayList<>(Arrays.asList(A, B, C, D)); List<Integer> validTimes = new ArrayList<>(); for(int h1: digits_4){ List<Integer> digits_3 = new ArrayList<>(digits_4); digits_3.remove((Object)h1); for(int h2: digits_3){ List<Integer> digits_2 = new ArrayList<>(digits_3); digits_2.remove((Object)h2); int m1 = digits_2.get(0); int m2 = digits_2.get(1); int time = h1*1000 + h2*100 + m1*10 + m2; if(isValidTime(time)){ validTimes.add(time); } time = h1*1000 + h2*100 + m2*10<ont color="#666666">; i++){ if(arr[i < min){ min = arr[i]; } if(arr[i > max){ max = arr[i]; } } // re-check left 'in-order' part for(int i = 0; i < indexL; i++){ if(arr[i > min){ indexL = i; break; } } // re-check right 'in-order' part for(int i = arr.length-1; i > indexR; i--){ if(arr[i < max){ indexR = i; break; } } return indexR - indexL + 1; }} |