알고리즘

릿코드 645. Set Mismatch 코틀린

rkrkrr0101 2024. 1. 22. 21:57

배열에서 없는숫자랑 2번나오는 숫자 리턴
해시맵에 넣고 포인터만들어서 돌려가면서 없는숫자찾고(끝까지같으면 마지막)
밸류가 2이면 중복숫자


정답

class Solution {
    fun findErrorNums(nums: IntArray): IntArray {
        val numHashMap = hashMapOf<Int, Int>()
        for (i in nums){
            numHashMap[i]=numHashMap[i]?.plus(1)?:1
        }
        var curPoint=1
        var missNum=nums.size
        var dupNum=-1

        for ((key,value )in numHashMap){
            
            if (key!=curPoint){
                missNum=curPoint
                curPoint+=1
            }
            if (value==2){
                dupNum=key
            }

            curPoint+=1
        }

        
        return intArrayOf(dupNum,missNum)
    }
}