Java Solution to display the earliest time for the given 6 int values in the 12 hour format
import java.util.Arrays; /** * Program to display the earliest time displayed in the 12 HR format from the given input of 6 digits */public class TimeToDisplay {
public String solution(int A, int B, int C, int D, int E, int F) {
// write your code in Java SE 8
int[] arr = {A, B, C, D, E, F};
System.out.println(Arrays.toString(arr));
Arrays.sort(arr);
int[] time = new int[6];
time[0] = findMinVal(arr, 1);
if (time[0] == -1) { return "Invalid number: Time can not be displayed";} time[1] = findMinVal(arr, 2);
if (time[1] == -1) { return "Invalid number: Time can not be displayed";} time[2] = findMinVal(arr, 5);
if (time[2] == -1) { return "Invalid number: Time can not be displayed";} time[4] = findMinVal(arr, 5);
if (time[4] == -1) { return "Invalid number: Time can not be displayed";} time[3] = findMinVal(arr, 9);
if (time[3] == -1) { return "Invalid number: Time can not be displayed";} time[5] = findMinVal(arr, 9);
if (time[5] == -1) { return "Invalid number: Time can not be displayed";} return time[0] + "" + time[1] + ":" + time[2] + "" + time[3] + ":" + time[4] + "" + time[5]; } public static int findMinVal(int[] arr, int predicate) { //System.out.println(Arrays.toString(arr)); if (arr.length != 6) return -1; int numToFind = -1;
int indexToRemove = -1;
for (int i = 0; i < arr.length; i++) { if (arr[i] > numToFind) { if (arr[i] <= predicate) { numToFind = arr[i];
indexToRemove = I;
break; } } } if (indexToRemove == -1) { return -1; } arr[indexToRemove] = -1;
return numToFind; } public static void main(String args[]) throws Exception { TimeToDisplay s = new TimeToDisplay();
String time = s.solution(1, 8, 3, 2, 6, 4);
System.out.println(time);
time = s.solution(4, 5, 3, 9, 2, 0);
System.out.println(time);
time = s.solution(0,0,0,0,8,7);
System.out.println(time);
time = s.solution(9,9,9,9,9,9);
System.out.println(time);
time = s.solution(0, 0,0 ,1, 1, 1);
System.out.println(time); } }





















