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