일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- VIM
- java
- react
- 알고리즘
- Database
- BFS
- 리트코드
- CS
- Data Structure
- TypeScript
- vscode
- Algorithm
- 그레이들
- DP
- LeetCode
- 자바
- Javascript
- network
- frontend
- 다이나믹 프로그래밍
- git
- 백준
- Redux
- 동적 계획법
- 프로그래머스
- Graph
- 안드로이드
- db
- Python
- DFS
Archives
- Today
- Total
늘 겸손하게
LeetCode 136 - Single Number ( JavaScript ) 본문
안녕하세요 besforyou입니다
이번 글은 LeetCode 136 - Single Number ( JavaScript ) 문제풀이입니다
문제 풀이
1. 시간복잡도 O(N) , 공간복잡도 O(N) 버전
맵을 구현하여 숫자가 배열에 몇 개 있는지 모두 센 뒤, 한 개만 있는 숫자를 반환합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var singleNumber = function(nums) {
const map = {};
for (const n of nums) {
if (map[n] == null){
map[n] = 0;
}
else
map[n]++;
}
for (const n of nums)
if (map[n] == 0) return n;
};
|
cs |
2. 시간복잡도 O(N) , 공간복잡도 O(1) 버전
XOR를 이용합니다. 같은 숫자가 두 번 곱해지면 비트가 0이 되는 것을 이용한 풀이입니다.
1
2
3
4
5
6
7
|
var singleNumber = function(nums) {
let num = nums[0];
for (let i = 1 ; i < nums.length ; i++) num ^= nums[i];
return num;
};
|
cs |
'코딩 문제 > LeetCode' 카테고리의 다른 글
LeetCode 961 - N-repeated Element in Size 2N Array ( JavaScript ) (0) | 2021.12.05 |
---|---|
LeetCode 451 - Sort Characters By Frequency ( JavaScript ) (0) | 2021.11.27 |
LeetCode 654 - Maximum Binary Tree ( JavaScript ) (0) | 2021.11.21 |
LeetCode 1525 - Number of Good Ways to Split a String ( Java ) (0) | 2021.11.20 |
LeetCode 1704 - Determine if String Halves Are Alike ( Java ) (0) | 2021.11.19 |