当前位置: 首页 > 编程笔记 >

在JavaScript中查找大于其相邻元素的元素

田权
2023-03-14
本文向大家介绍在JavaScript中查找大于其相邻元素的元素,包括了在JavaScript中查找大于其相邻元素的元素的使用技巧和注意事项,需要的朋友参考一下

我们需要编写一个JavaScript函数,该函数将数字数组作为第一个也是唯一的参数。

函数应从数组中查找并返回一个大于两者的数字,该数字应位于其直接右侧和左侧。如果数组中存在多个这样的元素,则我们的函数应返回其中任何一个。

例如-

如果输入数组是-

const arr = [3, 6, 7, 9, 8, 2, 5];

那么输出应该是-

const output = 9;

由于该问题要求找到峰值元素,因此我们可以使用经过调整的二进制搜索算法。

相同的步骤将是-

  • 看看任何元素。

  • 如果下一个元素和上一个元素都小于当前元素,我们找到一个解决方案,然后返回当前索引

  • 如果下一个元素大于当前元素,则必须在右边有一个峰,然后在右边递归看。

  • 如果前一个元素大于当前元素,则必须在左边有一个峰值,然后递归地看向左边。

示例

以下是代码-

const arr = [3, 6, 7, 9, 8, 2, 5];
const greaterThanAdjacent = (arr = [], start = 0, end = arr.length) => {
   let mid = start + Math.floor((end - start) / 2);
   let curr = arr[mid];
   let prev = mid-1 < 0 ? -Infinity : arr[mid-1];
   let next = mid+1 > arr.length-1 ? -Infinity : arr[mid+1];
   if (curr > prev && curr > next){
      return arr[mid];
   }
   if (curr < next){
      return greaterThanAdjacent(arr, mid+1, end);
   }
   if (curr > next){
      return greaterThanAdjacent(arr, start, mid-1);
   }
   return null;
};
console.log(greaterThanAdjacent(arr));
输出结果

以下是控制台输出-

9

 类似资料:
  • 本文向大家介绍JavaScript 查找最小或最大元素,包括了JavaScript 查找最小或最大元素的使用技巧和注意事项,需要的朋友参考一下 示例 如果您的数组或类似数组的对象是numeric,也就是说,如果它的所有元素都是数字,则可以使用Math.min.apply或作为第一个参数Math.max.apply传递null,而将数组作为第二个参数传递。 6 在ES6中,可以使用...运算符扩展数

  • 问题内容: 我想使用画布制作一个绘画应用程序。所以我需要找到鼠标在画布上的位置。 问题答案: 对于使用JQuery的人: 有时,当您拥有嵌套元素时,其中一个元素会附加事件,这可能会使您难以理解浏览器将其视为父级。在这里,您可以指定哪个父级。 您采用鼠标位置,然后从父元素的偏移位置中减去它。 如果要在滚动窗格内的页面上获取鼠标位置: 或相对于页面的位置: 请注意以下性能优化: 这样,JQuery不必

  • 问题内容: 确定元素相对于文档/正文/浏览器窗口的位置的最简单方法是什么? 现在,我正在使用,但是此方法只给您相对于父元素的位置,因此您需要确定body元素有多少个父元素,以了解相对于body /浏览器窗口/文档位置的位置。 这种方法也很麻烦。 问题答案: 您可以遍历DOM的顶层。

  • 问题内容: 我正在尝试使用Selenium(版本2.28.0)在子元素中搜索元素,但是selenium des似乎并不将其搜索限制在子元素中。我做错了吗,还是有一种方法可以使用element.find搜索子元素? 例如,我使用以下代码创建了一个简单的测试网页: 我的python(2.6版)代码如下所示: 如果我运行: 它从第二部分返回html。因此,selenium的搜索范围并不限于element

  • 我正在尝试搜索带有Selenium(版本2.28.0)的子元素中的一个元素,但是Selenium des似乎没有将其搜索限制在子元素中。是我这样做错了,还是有办法使用Element.find搜索子元素? 对于一个示例,我使用以下代码创建了一个简单的测试网页: 我的python(2.6版)代码如下所示: 如果我跑: 它返回来自第二部分的html。所以硒并不局限于元素2。 我希望能够找到Element

  • 本文向大家介绍在React.js和HOC中返回相邻元素,包括了在React.js和HOC中返回相邻元素的使用技巧和注意事项,需要的朋友参考一下 通常,React的render方法中的return语句返回一个div元素,其中包含所有子jsx,如下所示- 这里我们不能简单地返回多个元素,我们需要有一个类似于div的父容器,如上所示。 如果没有父容器元素,那么我们甚至可以返回如下数组: 返回数组时,我们