import java.util.Arrays;
import java.util.List;
public class FloorCeilFinder {
// Finds the floor and ceiling of N in the given list
public static int[] findFloorAndCeil(List<Integer> arr, int N) {
int floorval = Integer.MIN_VALUE; // Initialize to smallest possible value
int ceilval = Integer.MAX_VALUE; // Initialize to the largest possible value
for (int num : arr) {
if (num <= N && num > floorval) {
floorval = num; // Update floorval if num is closer to N
}
if (num >= N && num < ceilval) {
ceilval = num; // Update ceilval if num is closer to N
}
}
// If no valid floorval or ceilval is found, set them to a special value
if (floorval == Integer.MIN_VALUE) floorval = -1; // No floorval exists
if (ceilval == Integer.MAX_VALUE) ceilval = -1; // No ceilval exists
return new int[]{floorval, ceilval};
}
public static void main(String[] args) {
List<Integer> arr = Arrays.asList(4, 10, 8, 2, 6, 9, 1);
int N = 5; // Value to find floor and ceil for
int[] result = findFloorAndCeil(arr, N);
int floorval = result[0];
int ceilval = result[1];
System.out.println("floor: " + (floorval == -1 ? "None" : floorval));
System.out.println("ceil: " + (ceilval == -1 ? "None" : ceilval));
}
}
/*
run:
floor: 4
ceil: 6
*/