Bài toán: tìm 2 phần tử có tích lớn nhất trong mảng bất kỳ
// mảng (input) đề bài ⇛ đáp án: 5 và 7
const arr = [- 3, 3, 2, 4, 5, 7, 2, 3, 3];
// để chứa kết quả tích một phần tủ với phần tử liền kề bên phải:
let table = {};
┌─────────┬────────┐
│ (index) │ Values │
├─────────┼────────┤
│ 6 │ 6 │
│ 8 │ 2 │
│ 9 │ 7 │
│ 14 │ 5 │
│ 20 │ 3 │
│ 35 │ 4 │
│ -9 │ 0 │
└─────────┴────────┘
// duyệt đề bài
for (let i = 0; i <= arr.length; i++) {
//if này để không tính tích phần tử cuối cùng với phần tử phía sau (vượt array.lenght)
if (i + 2 <= arr.length) {
// insert record vào bảng dò
table[arr[i] * arr[i + 1]] = i;
}
}
//lại quay về bài toán tìm phần tử lớn nhất trong mảng, mảng này là cột index bên trên [6, 8, 9, 14, 20, 35, -9]
const indexInArr = table[Math.max(...Object.keys(table))];
// dòng này ai cũng biết
console.log(arr[indexInArr], ' và ', arr[indexInArr + 1]);
Không biết em bị rơi vào trường hợp code trâu không?