Giả sử, chúng ta có một mảng các số như thế này -
const arr = [4, 7, 4, 8, 9, 3];
Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng số như vậy. Hàm sẽ tìm kiếm ba số như vậy từ mảng có các chỉ số cũng như độ lớn của chúng theo thứ tự tăng dần (liên tiếp hoặc không liên tiếp).
Ví dụ:trong mảng trên, các số 7, 8 và 9 có chỉ số 1, 3 và 4. Các số này thỏa mãn cả hai điều kiện, vì vậy hàm của chúng ta sẽ trả về true cho mảng này.
Ví dụ
Mã cho điều này sẽ là -
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));
Đầu ra
Và đầu ra trong bảng điều khiển sẽ là -
false