To solve this problem, you need to know the arithmetic progression formula.
class Solution {
fun findErrorNums(nums: IntArray): IntArray {
val n = nums.size
val sum = (n * (n + 1))/2
val sortedNum = nums.sorted()
var dup = 0
var errorSum = sortedNum[0]
for(i in 1 until sortedNum.size){
if(sortedNum[i] == sortedNum[i-1]) {
dup = sortedNum[i]
}else errorSum += sortedNum[i]
}
return intArrayOf(dup, sum - errorSum)
}
}
Runtime: 364 ms, faster than 25.00% of Kotlin online submissions for Set Mismatch.
Memory Usage: 39.5 MB, less than 100.00% of Kotlin online submissions for Set Mismatch.