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

1 Answer

0 votes
function findFloorAndCeil(arr: number[], N: number): [number, number] {
  let floorval: number = Number.MIN_SAFE_INTEGER; // Initialize to smallest possible value
  let ceilval: number = 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: number[] = [4, 10, 8, 2, 6, 9, 1];
const N: number = 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
...