You are given an array of elements. Some/all of them are duplicates. Find them in 0(n) time and 0(1) space. Property of inputs – Number are in the range of 1..n where n is the limit of the array.
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
If the O(1) storage is a limitation on additional memory, and not an indication that you can’t modify the input array, then you can do it by sorting while iterating over the elements: move each misplaced element to its “correct” place – if it’s already occupied by the correct number then print it as a duplicate, otherwise take the “incorrect” existing content and place it correctly before continuing the iteration. This may in turn require correcting other elements to make space, but there’s a stack of at most 1 and the total number of correction steps is limited to N, added to the N-step iteration you get 2N which is still O(N).