How to find the previous smaller element from the beginning of array for each array element in JavaScript

1 Answer

0 votes
function findPreviousSmaller(arr) {
	const size = arr.length;
    let s = "";
	for (let i = 0; i < size; i++) {
        let not_found = 1; // if not found write -1
   
        let previous_smaller = arr[i];
        for (let j = i - 1; j >= 0; j--) {
            if (arr[j] < previous_smaller) {
                previous_smaller = arr[j];
                not_found = 0;
            }
        }
   
        s += ((not_found) ? -1 : previous_smaller) + " ";
    }
    console.log(s);
}
  
const arr = [ 2, 6, 3, 7, 8, 1, 9, 0, 13, 19, 18 ];
     
// 2:-1 // 6:2 // 3:2 // 7:2 // 8:2 // 1:-1 // 9:1 // 0:-1 // 13:0 // 19:0 // 18:0
   
findPreviousSmaller(arr);




/*
run:

"-1 2 2 2 2 -1 1 -1 0 0 0 "

*/

 



answered Nov 25, 2021 by avibootz
edited Nov 25, 2021 by avibootz
...