Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng chỉ đọc gồm n + 1 số nguyên từ 1 đến n.
Hàm sẽ tìm một số lặp lại theo thời gian tuyến tính và sử dụng tối đa không gian O (n).
Ví dụ:Nếu mảng đầu vào là -
const arr = [3 4 1 4 1];
Sau đó, đầu ra phải là -
const output = 1;
Nếu có nhiều câu trả lời có thể có (như ở trên), chúng ta nên xuất một câu trả lời bất kỳ. Nếu không có bản sao, chúng ta nên xuất ra -1.
Ví dụ
const arr = [3, 4, 1, 4, 1]; const findRepeatedNumber = (arr = []) => { const set = new Set(); for (const item of arr) { if (set.has(item)){ return item; }; set.add(item); }; return -1; }; console.log(findRepeatedNumber(arr));
Đầu ra
Điều này sẽ tạo ra kết quả sau -
4