Input: [1, 2, 2, 3, 4, 5, 6]
Output: 2
find single repeating number from a big array
Upasana | May 05, 2019 | 1 min read | 167 views | algorithm-datastructures
We have an array that contains large number of entries, all of them are unique except one that is repeating twice. We need to find that repeating number in a minimum time O(n) time and O(1) space complexity
Sum of the Elements
We can sum up all the elements of input array and compare it with the below output:
\$1 + 2 + 3 + 4 + .. + n = (n * (n + 1)) / 2\$
The difference between actual array sum and math sum will give us the single duplicate number.
In Kotlin, we can write the below program to find the single duplicate number:
val array = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 2)
val sum = array.sum()
val mathSum = ((array.size -1) * array.size) / 2
val duplicateNumber = sum - mathSum
println(duplicateNumber)
2
Top articles in this category:
- How will you find out first non-repeating character from a string
- Merge two sorted array into a single sorted array
- Relative efficiency of Algorithms using Big O Notation
- Reverse the bits of a number and check if the number is palindrome or not
- Hibernate & Spring Data JPA interview questions
- Cracking core java interviews - question bank
- ION Trading Java Interview Questions