[leetcode, JS] 26. Remove Duplicates from Sorted Array

mxxn·2023년 8월 7일
0

leetcode

목록 보기
9/198

문제

문제 링크 : Remove Duplicates from Sorted Array

풀이

/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
    const deduplicatedSet = new Set(nums);
    let deduplicatedArray = Array.from(deduplicatedSet);
    for (var i = 0; i < deduplicatedArray.length; i++) {
        nums[i] = deduplicatedArray[i];
    }
    nums.length = deduplicatedArray.length;
    return nums.length;
};
  1. 중복제거한 array를 만들고
  2. nums[i]에 중복제거한 array[i]을 할당
  3. nums.length도 중복제거한 array length로
  4. nums.length return
  • Runtime 59 ms, Memory 44.5 MB

의문점

  • nums에 [...new Set(nums)]를 바로 할당하면 문제 풀이 실패
    => remove the duplicates in-place 때문

다른 풀이

/**
 * @param {number[]} nums
 * @return {number}
 */
/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
    let insertAt = 1

    for (let i = 1; i < nums.length; i++) {
        if (nums[i] !== nums[i - 1]) {
            nums[insertAt] = nums[i]
            insertAt++
        }
    }

    return insertAt
};
  • Runtime 61 ms, Memory 44.8 MB
profile
내일도 글쓰기

0개의 댓글