Hôm nay, một người phỏng vấn đã hỏi tôi câu hỏi này. Câu trả lời ngay lập tức của tôi là chúng ta có thể thực hiện tìm kiếm tuyến tính đơn giản, so sánh phần tử hiện tại với phần tử trước đó trong mảng. Sau đó ông hỏi tôi làm thế nào vấn đề có thể được giải quyết trong thời gian ít hơn tuyến tính.Trong thời gian ít tuyến tính, tìm bản sao trong một mảng được sắp xếp
Giả
- Mảng là sắp xếp
- chỉ một Có lặp lại
- Mảng là chỉ dân cư với số
[0, n]
, nơin
là chiều dài của mảng.
Ví dụ mảng: [0,1,2,3,4,5,6,7,8,8,9]
Tôi đã cố gắng tìm ra một phân chia-và-chinh phục thuật toán để giải quyết điều này, nhưng tôi không tự tin rằng đó là câu trả lời đúng. Có ai có ý tưởng nào?
ví dụ của bạn chỉ bao gồm các số '[0, n-2]' (không có '10' , '11') Chỉ là một ví dụ hay một quy tắc chung? – jfs