Chúng ta được yêu cầu viết một hàm trả về chỉ số của phần tử đầu tiên xuất hiện ít nhất hai lần trong mảng. Nếu không có phần tử nào xuất hiện nhiều hơn một lần, chúng ta phải trả về -1. Chúng tôi phải thực hiện việc này trong không gian cố định (tức là không sử dụng thêm bộ nhớ).
Vì vậy, hãy viết giải pháp cho vấn đề này.
Chúng tôi sẽ sử dụng vòng lặp for để lặp lại mảng và sử dụng phương thức Array.prototype.lastIndexOf () để kiểm tra sự trùng lặp.
Ví dụ
Mã cho điều này sẽ là -
const arr1 = [0, 1, 1, 2, 3, 4, 4, 5]; const firstRedundant = arr => { for(let i = 0; i < arr.length; i++){ if(arr.lastIndexOf(arr[i]) !== i){ return i; }; }; return -1; } console.log(firstRedundant(arr1)); // 1
Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
1