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

Kiểm tra mảng có đỉnh giữa trong JavaScript

Mô tả vấn đề

Chúng ta cần viết hàm JavaScript nhận vào mảng số arr. Hàm kiểm tra xem mảng có phải "centrally peaked" hay không (có đỉnh ở giữa). Trả về true nếu đúng, false nếu sai.

Điều kiện:

  • arr.length ≥ 3
  • Tồn tại i với 0 < i < arr.length - 1 sao cho: arr[0] < arr[1] < ... < arr[i-1] < arr[i] VÀ arr[i] > arr[i+1] > ... > arr[arr.length-1]

Ví dụ, nếu đầu vào là:

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

Thì đầu ra nên là:

const output = true;

Giải thích đầu ra

Vì mảng đạt đỉnh tại 9.

Ví dụ minh họa

Mã thực hiện (duyệt một lần):

const arr = [2, 6, 7, 9, 5, 3, 1]; 
const isCentrallyPeaked = (arr = []) => { 
  let ind = undefined; 
  for (let i = 1; i <= arr.length - 1; i++) { 
    if (ind === undefined) { 
      if (arr[i] < arr[i - 1]) { ind = i - 1; } 
      else if (arr[i] === arr[i - 1]) { return false; } 
    } else if (arr[i] >= arr[i - 1]) { 
      return false; 
    } 
  } 
  return ind > 0 && ind < arr.length - 1; 
}; 
console.log(isCentrallyPeaked(arr));

Đầu ra

Kết quả trong console:

true