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

Hiệu lớn nhất giữa hai phần tử với điều kiện thứ tự trong JavaScript


Chúng ta cần viết hàm nhận mảng số. Hàm tìm hiệu giữa phần tử lớn nhất và nhỏ nhất với điều kiện: phần tử nhỏ hơn phải xuất hiện TRƯỚC phần tử lớn hơn trong mảng gốc.

Ví dụ - arr = [2, 5, 6, 12, 1]. Max=12, min=1 nhưng 1 đứng sau 12 -> không hợp lệ. Hiệu lớn nhất hợp lệ = 12-2 = 10.

Ví dụ

Code sau đây:

const arr = [2, 5, 6, 12, 1]; 
const findLargestDifference = (arr = []) => { 
  if (arr.length <= 1) return -1; 
  let min = arr[0]; 
  let diff = 0; 
  for (let i = 1; i < arr.length; i++) { 
    if (arr[i] > min && arr[i] - min > diff) diff = arr[i] - min; 
    else if (arr[i] <= min) min = arr[i]; 
  } 
  if (diff <= 0) return -1; 
  return diff; 
}; 
console.log(findLargestDifference(arr));

Kết quả

Kết quả trên console:

10