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