```
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