📜  查找下一个更大元素的 Javascript 程序(1)

📅  最后修改于: 2023-12-03 15:26:36.065000             🧑  作者: Mango

查找下一个更大元素的 Javascript 程序介绍

在算法中,查找下一个更大元素是一种非常常见的问题。在一个数组中,对于每一个元素,都需要找到下一个更大的元素。如果不存在下一个更大的元素,则返回 -1。本文将介绍如何使用 Javascript 编写查找下一个更大元素的程序。

程序实现思路

要查找下一个更大的元素,我们可以使用栈来解决。我们从左到右遍历数组中的每一个元素,并将当前元素与栈顶元素进行比较。如果当前元素大于栈顶元素,则将栈顶元素出栈,并将下一个更大元素的值设置为当前元素。重复此步骤,直到当前元素小于栈顶元素,将当前元素入栈。最后,栈中剩余的元素的下一个更大元素都为 -1。

代码实现

下面是查找下一个更大元素的 Javascript 程序实现代码:

function nextGreaterElement(nums) {
  let stack = [];
  let res = new Array(nums.length).fill(-1);

  for (let i = 0; i < nums.length; i++) {
    while (stack.length && nums[i] > nums[stack[stack.length - 1]]) {
      let top = stack.pop();
      res[top] = nums[i];
    }
    stack.push(i);
  }

  return res;
}
程序运行

下面是一个使用示例:

const nums = [2, 5, 3, 9, 1, 12, 6, 8];

console.log(nextGreaterElement(nums));
// 输出:[ 5, 9, 9, 12, 12, -1, 8, -1 ]
结论

本文介绍了使用栈来查找下一个更大元素的 Javascript 程序实现思路和代码。这是一种非常常见的问题,可以用于解决多种与数组相关的算法问题。