Problem From.
https://leetcode.com/problems/single-number/
오늘 문제는 주어진 nums 배열에서 한번만 나온 숫자를 걸러내는 문제였다.
이 문제는 linear time 에 constant space 를 가지고 풀어야하는 조건이 있었는데, bit manipulation 을 통해서 풀 수 있었다.
같은 숫자가 나오지 않으면 0 이 되지 않는 비트 연산 xor 의 특성을 통해서 리스트를 처음부터 끝까지 보면서 0이 되지 않고 남아있는 수를 반환해주면 되었다.
class Solution {
fun singleNumber(nums: IntArray): Int {
var main = 0
for (i in 0 until nums.size) {
main = main xor nums[i]
}
return main
}
}