• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar
  • Skip to secondary sidebar

GoHired

Interview Questions asked in Google, Microsoft, Amazon

Join WeekEnd Online Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

  • Home
  • Best Java Books
  • Algorithm
  • Internship
  • Certificates
  • About Us
  • Contact Us
  • Privacy Policy
  • Array
  • Stack
  • Queue
  • LinkedList
  • DP
  • Strings
  • Tree
  • Mathametical
  • Puzzles
  • Graph

Check if an array has duplicate numbers in O(n) time and O(1) space

January 8, 2015 by Dhaval Dave

We have array  a[ ]= {1, 2, 3, 4, 5, 6, 7, 8, 4, 10};
And we need to find a number which is duplicate in O(n) and Space complexity O(1)

Method 1 ) Sorting
Sort it and u’ll get array = 1, 2, 3, 4, 4, 5, 6, 7, 8, 10 and find repeating element such that its index are different, but sorting takes O(nlogn)

Method 2) Hashing.

Keep Hashmap with <key, count> pair
Hashmap will contain
1,1
2,1
3,1
4,2
and return 4.
But it will take O(n) space Complexity

Method 3) Changing Array

Check if A [ abs(A[i]) ] is positive, then make it negative,
if its already negative then we found number.
( This trick will work only if all numbers are positive )

say array is 1, 2, 3, 4, 5, 6, 7, 8, 4, 10

so
while processing 1, w’ll make A[1] = -A[1], so 2 will become -2.
while processing 2, w’ll make A[2] = -A[2], so 3 will become -3.
while processing 3, w’ll make A[3] = -A[3], so 4 will become -4.
while processing 4, w’ll make A[4] = -A[4], so 5 will become -5.
while processing 5, w’ll make A[5] = -A[5], so 6 will become -6.
.
.
.
while processing 4, we checked that A[4] is already negative, So this is duplicate number.

-In order to get Original Array, we can make all sign as positive after wards
(Write/Append this code in ur code)


Working Code http://ideone.com/Y9eStG

#include <iostream>
using namespace std;

int main() {
int a[]= {1,2,3,4,5,6,7,8,4,10};
for(int i=0;i<sizeof(a)/sizeof(*a);i++){
if ( a[abs(a[i])]>0 ){
a[abs(a[i])]=-(a[abs(a[i])]);
}
else if (a[abs(a[i])]<0){
cout<<abs(a[i])<<endl;
}

}
for(int i=0;i<sizeof(a)/sizeof(*a);i++){
cout << a[i] <<endl;
}
return 0;
}

Duplicate
4

Array 
1
-2
-3
-4
-5
-6
-7
-8
-4
10

Similar Articles

Filed Under: Adobe Interview Questions, Interview Questions, problem Tagged With: Array

Reader Interactions

Primary Sidebar

Join WeekEnd Online/Offline Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

Join WeekEnd Online/Offline Batch from 4-April-2020

WhatsApp us

Secondary Sidebar

Custom Search

  • How I cracked AMAZON
  • LeetCode
  • Adobe
  • Amazon
  • Facebook
  • Microsoft
  • Hacker Earth
  • CSE Interview

Top Rated Questions

Find next greater number with same set of digits

Naurki.com Security Breach

Calculate price of parking from parking start end time prices

SAP Interview Questions

25 horses 5 tracks Find 3 fastest puzzle

Given a sorted array and a number x, find the pair in array whose sum is closest to x

Reverse a Linked List in groups of given size

Stock Buy Sell to Maximize Profit

Get Minimum element in O(1) from input numbers or Stack

Find the kth number with prime factors 3, 5 and 7

Amazon Interview Experience – SDE Chennai

Introduction To Number Theory ( Part 1 )

Rectangular chocolate bar Create at least one piece which consists of exactly nTiles tiles

Closed Parentheses checker

building with N steps, we can take 1,2,3 steps calculate number of ways to reach at top of building

In Given LinkedList Divide LL in N Sub parts and delete first K nodes of each part

Daughter’s Age VeryGood Puzzle

Given Set of words or A String find whether chain is possible from these words or not

Given array of 0’s and 1’s. All 0’s are coming first followed by 1’s. find the position of first 1

Find the number ABCD such that when multipled by 4 gives DCBA.

Flipkart SDET Interview Experience

Stickler thief

Find Pythagorean Triplets in an array in O(N)

C++ OOPs Part2

Maximum difference between two elements s.t larger element appears after the smaller number

Amazon Interview On-Campus For Internship – 1

Printing each word reverse in string

Get K Max and Delete K Max in stream of incoming integers

Find loop in Singly linked list

Maximum size of square sub matrix with all 1’s in a binary matrix

Copyright © 2026 · Genesis Framework · WordPress · Log in