문제 설명
정수 배열 nums가 주어지면 모든 요소는 하나를 제외하고 두 번 나타납니다. 그 하나를 찾아보세요.
선형적인 런타임 복잡성을 갖는 솔루션을 구현해야 하며 일정한 추가 공간만 사용해야 합니다.
제한사항
입출력 예
입출력 예 #1
- 입력 : nums = [2, 2, 1]
- 출력 : 1
입출력 예 #2
- 입력 : nums = [4, 1, 2, 1, 2]
- 출력 : 4
입출력 예 #3
- 입력 : nums = [1]
- 출력 : 1
문제풀이
/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function (nums) {
let result = [];
nums.forEach((num) => {
if (!result.includes(num)) {
result.push(num);
} else {
result = result.filter((item) => num !== item);
}
});
return result;
};
singleNumber([2, 2, 1]);
singleNumber([4, 1, 2, 1, 2]);
singleNumber([1]);
/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function (nums) {
let obj = {};
new Set(nums).forEach((key, i) => (obj[key] = 0));
nums.forEach((num) => {
obj[num]++;
});
const result = Number(Object.keys(obj).filter((key) => obj[key] === 1)[0]);
return result;
};
singleNumber([2, 2, 1]);
singleNumber([4, 1, 2, 1, 2]);
singleNumber([1]);
링크
'코딩 테스트 연습 > LeetCode' 카테고리의 다른 글
[LeetCode] Valid Parentheses (0) | 2024.07.02 |
---|---|
[LeetCode] Design Browser History (0) | 2024.06.25 |
[LeetCode] Two Sum (2) | 2024.06.18 |
댓글