728x90
An array A consisting of N different integers is given. The array contains integers in the range [1..(N + 1)], which means that exactly one element is missing.
Your goal is to find that missing element.
Write a function:
class Solution { public int solution(int[] A); }
that, given an array A, returns the value of the missing element.
For example, given array A such that:
A[0] = 2 A[1] = 3 A[2] = 1 A[3] = 5the function should return 4, as it is the missing element.
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [0..100,000];
- the elements of A are all distinct;
- each element of array A is an integer within the range [1..(N + 1)].
private fun solution(A: IntArray): Int {
// O(N) or O(N*log(N))
if(A.isEmpty()){
return 1
}
A.sort()
if(A.first() != 1){
return 1
}
var temp = 1
A.forEach {
if(temp == it){
temp +=1
}else{
return temp
}
}
if(temp == 1) {
temp = A.size
}
return temp
}
728x90
'코딩테스트 > codility' 카테고리의 다른 글
[codillity] kotlin - lesson4. FrogRiverOne (0) | 2022.10.30 |
---|---|
[codillity] kotlin - lesson3. TapeEquilibrium (0) | 2022.10.30 |
[codillity] kotlin - lesson3. FrogImp (0) | 2022.10.30 |
[codillity] kotlin - lesson2. OddOccurrencesInArray (0) | 2022.10.30 |
[codillity] kotlin - lesson2. cyclicRotation (0) | 2022.10.30 |