Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng số nguyên làm đối số duy nhất.
Dựa trên mảng được lấy làm đầu vào, hàm phải tạo một mảng mới có cùng độ dài dựa trên các tiêu chí sau.
Bất kỳ phần tử tương ứng nào của mảng đầu ra phải là tích của ba số lớn nhất gặp phải cho đến nay. Nếu chỉ số tương ứng nhỏ hơn 3 (chúng ta chưa gặp ba phần tử) thì giá trị tương ứng phải là -1. Và Mặc dù chúng tôi có thể sử dụng các giá trị không phải duy nhất để tính toán sản phẩm, nhưng các giá trị không phải duy nhất đó phải có mặt ở các chỉ số khác nhau.
Ví dụ -
Nếu mảng đầu vào là -
const arr = [1, 2, 3, 4, 5, 6];
Sau đó, đầu ra phải là -
const output = [-1, -1, 6, 24, 60, 120];
Ví dụ
Sau đây là mã -
const arr = [1, 2, 3, 4, 5, 6]; const maximumTripleProduct = (arr = []) => { const res = []; const max = [arr[0], arr[1], arr[2]]; res[0] = res[1] = -1; res[2] = arr[0] * arr[1] * arr[2]; for(let i = 3; i < arr.length; i++){ max.push(arr[i]); max.sort((a, b) => b - a); max.pop(); res[i] = max[0] * max[1] * max[2]; }; return res; }; console.log(maximumTripleProduct(arr));
Đầu ra
Sau đây là đầu ra của bảng điều khiển -
[-1, -1, 6, 24, 60, 120]