假设我们有一个这样的数字数组-
const arr = [4, 7, 4, 8, 9, 3];
我们需要编写一个JavaScript函数,该函数接受一个这样的数字数组。函数应从数组中搜索其索引及其大小严格按升序(连续或非连续)的这三个数字。
例如,在上面的数组中,数字7、8和9的索引分别为1、3和4。这些数字都满足两个条件,因此我们的函数应对此数组返回true。
为此的代码将是-
const arr = [4, 7, 4, 8, 9, 3]; const findMatch = (arr) => { let stack = []; let s3 = −Infinity for (let i = arr.length − 1; i >= 0; i−−) { if (arr[i] < s3) return true while (stack.length > 0 && stack[stack.length − 1] < arr[i]) { s3 = stack.pop() }; stack.push(arr[i]) }; return false }; console.log(findMatch(arr));
输出结果
控制台中的输出将是-
false