How to find the floor and ceiling of the value N in an unsorted array with JavaScript

1 Answer

0 votes
function findFloorAndCeil(arr, N) {
    let floorval = Number.MIN_SAFE_INTEGER; // Initialize to smallest possible value
    let ceilval = Number.MAX_SAFE_INTEGER;  // Initialize to largest possible value

    for (const num of 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 === Number.MIN_SAFE_INTEGER) {
        floorval = -1;
    }
    if (ceilval === Number.MAX_SAFE_INTEGER) {
        ceilval = -1;
    }

    return [floorval, ceilval];
}

const arr = [4, 10, 8, 2, 6, 9, 1];
const N = 5;

const [floorval, ceilval] = findFloorAndCeil(arr, N);

console.log("floor:", floorval === -1 ? "None" : floorval);
console.log("ceil:", ceilval === -1 ? "None" : ceilval);



/*
run:

floor: 4
ceil: 6

*/

 



answered 4 days ago by avibootz
...