เราต้องหาความต่างระหว่างค่าสูงสุดและต่ำสุดในอาร์เรย์ แต่เงื่อนไขคือค่าต่ำสุดต้องปรากฏก่อนค่าสูงสุดในอาร์เรย์เดิม
ตัวอย่าง: [2, 5, 6, 12, 1] → ค่าสูงสุด 12, ต่ำสุด 1 แต่ 1 อยู่หลัง 12 → ใช้ 2 แทน → 12-2=10
ตัวอย่างโค้ด
const arr = [2, 5, 6, 12, 1];
const findLargestDifference = (arr = []) => {
if (arr.length <= 1) { return -1; }
let min = arr[0], 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));
ผลลัพธ์
ค่าที่แสดงในคอนโซลจะเป็นดังนี้:
10