๋ฌธ์ ๋งํฌ
Single Number - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
์ฃผ์ด์ง ๋ฐฐ์ด์์ single number์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. (์ค๋ณต๋ ์์๊ฐ ์๋ ๊ฐ)
์ ๊ทผ ๋ฐฉ๋ฒ
๋จ์ํ๊ฒ ๋ฐฐ์ด์ ์ ๋ ฌํ๊ณ ์์ ํ์์ผ๋ก ํ์ดํ์๋ค.
nums.sort((a, b) => a - b); for(let i = 0; i < nums.length; i++){ if(nums[i] !== nums[i-1] && nums[i] !== nums[i+1]) return nums[i]; }โ
์ฒ์ ์์์ undefinded !== nums[0] && nums[0] !== nums[1]
๋ง์ง๋ง์ nums[nums.length - 2] !== nums[nums.length - 1] && nums[nums.length - 1] !== undefined
์ด๊ธฐ ๋๋ฌธ์ ์ฒ์ ์ซ์๊ฐ ์ ์ผํ ๊ฐ์ด๋ ๋ง์ง๋ง ์ซ์๊ฐ ์ ์ผํ ๊ฐ์ด๋ ๋ชจ๋ ์ฒ๋ฆฌํ ์ ์๋ค.
๊ฐ๋จํ๊ฒ ํ์ดํ์ฌ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ์๊ฐํด๋ณด์๋ค.
ํ์ฌ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ ๋๋๊ณ , ๋๋ ๋ฐฐ์ด์ ํฉ์ณ์ ํ์ฌ ๊ฐ์ด ์๋์ง ํ๋จํ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ์๋ค.
[1,2,3,4,5] => ํ์ฌ๊ฐ์ด 3์ผ๋ [1,2] [4,5]๋ฅผ ๋๋๊ณ ํฉ์ณ์ [1,2,4,5]์ 3์ด ์๋์ง ํ์
for(let i = 0; i < nums.length; i++){ prevArr = nums.slice(0, i); nextArr = nums.slice(i+1, nums.length); if(!prevArr.concat(nextArr).includes(nums[i])) return nums[i]; }โ
๋ฐฐ์ด์ ์๋ก concatํ๋ ๊ณผ์ ์์ O(n) & for๋ฌธ์์ O(n)์ ์๊ฐ์ด ์์๋๋ฏ๋ก
O(n^2)์ด๊ณ , ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋๋ฏ๋ก ๊ณต๊ฐ๋ณต์ก๋๋ ๋งค์ฐ ๋จ์ด์ง๋ค.
// ํจ์จ์ ํ์ด
/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function(nums) {
nums.sort((a, b) => a - b);
for(let i = 0; i < nums.length; i++){
if(nums[i] !== nums[i-1] && nums[i] !== nums[i+1]) return nums[i];
}
};
// ๋นํจ์จ์ ํ์ด
/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function(nums) {
for(let i = 0; i < nums.length; i++){
prevArr = nums.slice(0, i);
nextArr = nums.slice(i+1, nums.length);
if(!prevArr.concat(nextArr).includes(nums[i])) return nums[i];
}
};
'์ฝ๋ฉํ ์คํธ > LeetCode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LeetCode] Combination Sum (0) | 2022.07.11 |
---|---|
[LeetCode] Min Cost Climbing Stairs (0) | 2022.07.10 |
[LeetCode] Fibonacci Number (0) | 2022.07.06 |
[LeetCode] Longest Consecutive Sequence (0) | 2022.07.05 |
[LeetCode] Candy (0) | 2022.07.04 |