[LeetCode] 26. Remove Duplicates from Sorted Array

ming0ยท2024๋…„ 4์›” 22์ผ
0

์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
3/6
post-thumbnail

๐Ÿ‘ฟ ๋ฌธ์ œ 26. Remove Duplicates from Sorted Array

  1. nums ๋ฐฐ์—ด์˜ ์ค‘๋ณต์š”์†Œ ์ œ๊ฑฐํ•˜๊ธฐ
  2. ์ตœ์ข… nums ๋ฐฐ์—ด์˜ ๊ธธ์ด return

๐Ÿ˜ˆ ํ’€์ด

โœ”๏ธ ์ฒซ๋ฒˆ์งธ ํ’€์ด

/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
    for(let i=0; i<nums.length; i++) {
        if(nums[i] === nums[i-1]) {
            nums.splice(i,1)
            i--
        }
    }
};
  1. nums๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์ด์ „ ๊ฐ’๊ณผ ๊ฐ™์œผ๋ฉด spliceํ•œ ํ›„ ์ธ๋ฑ์Šค๋ฅผ -1 ํ•ด์ค€๋‹ค.

    ์‹œ๊ฐ„๋ณต์žก๋„ : O(n^2) // for๋ฌธ O(n), splice O(n) ๐Ÿ‘‰ O(n*n)
    ๊ณต๊ฐ„๋ณต์žก๋„ : O(n) // for๋ฌธ O(1), splice O(n)

โœ”๏ธ ๋‘๋ฒˆ์งธ ํ’€์ด

/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function (nums) {
    let setNums = [...new Set([...nums])]

    for (let i = 0; i < setNums.length; i++) {
        nums[i] = setNums[i]
    }

    return setNums.length
};
  1. nums๋ฅผ Set ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ค‘๋ณต์ œ๊ฑฐ๋ฅผ ํ•ด์ค€ ํ›„ ๋ฐฐ์—ด๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
  2. setNums๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ nums์— ๋„ฃ์–ด์ค€ ํ›„ setNums์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    ์‹œ๊ฐ„๋ณต์žก๋„ : O(n) // Set O(n) + for๋ฌธ O(n)
    ๊ณต๊ฐ„๋ณต์žก๋„ : O(n) // Set O(n)

splice๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋‘๋ฒˆ์งธ ํ’€์ด์—์„œ runtime์„ 76ms ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค!

โœ… 1์ผ1์•Œ

2๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2024๋…„ 4์›” 24์ผ

๋ฏผ์˜๋‹˜ ๋ฉ‹์ง€๋‹ค!!!

1๊ฐœ์˜ ๋‹ต๊ธ€