
- Javascript Basics Tutorial
- Javascript - Home
- Javascript - Overview
- Javascript - Syntax
- Javascript - Enabling
- Javascript - Placement
- Javascript - Variables
- Javascript - Operators
- Javascript - If...Else
- Javascript - Switch Case
- Javascript - While Loop
- Javascript - For Loop
- Javascript - For...in
- Javascript - Loop Control
- Javascript - Functions
- Javascript - Events
- Javascript - Cookies
- Javascript - Page Redirect
- Javascript - Dialog Boxes
- Javascript - Void Keyword
- Javascript - Page Printing
- JavaScript Objects
- Javascript - Objects
- Javascript - Number
- Javascript - Boolean
- Javascript - Strings
- Javascript - Arrays
- Javascript - Date
- Javascript - Math
- Javascript - RegExp
- Javascript - HTML DOM
- JavaScript Advanced
- Javascript - Error Handling
- Javascript - Validations
- Javascript - Animation
- Javascript - Multimedia
- Javascript - Debugging
- Javascript - Image Map
- Javascript - Browsers
- JavaScript Useful Resources
- Javascript - Questions And Answers
- Javascript - Quick Guide
- Javascript - Functions
- Javascript - Resources
Finding distance to next greater element in JavaScript
Problem
We are required to write a JavaScript function that takes in an array of numbers, arr, as the first and the only argument.
Our function should construct a new array for the input in which each corresponding element is the distance to the next greater element than the current element, and if there is no greater element to the right of the current element, we should push 0 for that corresponding element in the res array and finally we should return this array.
For example, if the input to the function is
Input
const arr = [12, 13, 14, 11, 16, 10, 12, 17, 19, 18];
Output
const output = [1, 1, 2, 1, 3, 1, 1, 1, 0, 0];
Output Explaination
Because the next greater element to 12 is 13, 1 block away,
Next greater to 13 is 14, 1 block away,
Next greater to 14 is 16, 2 blocks away and so on.
Following is the code −
Example
const arr = [12, 13, 14, 11, 16, 10, 12, 17, 19, 18]; const findNextGreater = (arr = []) => { const stack = [] const res = new Array(arr.length).fill(0) for (let i = 0; i < arr.length; i++) { while (arr[i] > arr[stack[stack.length - 1]] && stack.length > 0) { const index = stack.pop() res[index] = i - index } stack.push(i) }; return res }; console.log(findNextGreater(arr));
Output
[1, 1, 2, 1, 3, 1, 1, 1, 0, 0]
- Related Articles
- Finding next greater node for each node in JavaScript
- Next Greater Element in Circular Array in JavaScript
- Next Greater Element in C++
- Finding element greater than its adjacent elements in JavaScript
- Next Greater Element II in C++
- Next Greater Element III in C++
- Finding next n leap years in JavaScript
- Next greater element in same order as input in C++
- Finding letter distance in strings - JavaScript
- Finding next prime number to a given number using JavaScript
- Finding middlemost element(s) in JavaScript
- Finding the immediate next character to a letter in string using JavaScript
- Finding hamming distance in a string in JavaScript
- Elements greater than the previous and next element in an Array in C++
- JavaScript: Finding nearest prime number greater or equal to sum of digits - JavaScript

Advertisements