Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Dãy tăng chặt (Strictly increasing sequence) trong JavaScript

Cho dãy số nguyên dạng mảng, xác định có thể được dãy tăng chặt bằng cách xóa tối đa 1 phần tử không.

Ví dụ: [1, 3, 2, 1] => false (không xóa 1 phần tử nào được). [1, 3, 2] => true (xóa 3 -> [1,2] hoặc xóa 2 -> [1,3]).

Dãy tăng chặt

Mọi số sau lớn hơn số trước (không cho phép bằng).

Cách tiếp cận

Duyệt mảng, nếu phần tử sau <= phần tử trước thì tăng biến đếm unwantedElements. Nếu biến đếm > 1 thì return false. Duyệt hết mà <=1 thì return true.

Ví dụ

const isStrictlyIncreasing = (arr) => {
  let unwantedElements = 0;
  for (let i = 0; i < arr.length - 1; i++) {
    if (arr[i] >= arr[i+1]) {
      unwantedElements++;
      if (unwantedElements > 1) {
        return false;
      }
    }
  }
  return true;
};

console.log(isStrictlyIncreasing([1, 3, 2, 1]));
console.log(isStrictlyIncreasing([1, 3, 2]));

Kết quả

Đầu ra trong console sẽ là:

false true