알고리즘 문제 풀이 스터디를 동기들과 같이 하게 되었다!
자바스크립트 지원이 잘 되어있는 릿츠코드에서 풀어봤는데 영어로 된 사이트라 문제해석부터 힘들었다;;
이 문제는 오랜시간 고민했지만 혼자 해결하기 힘들어서 다른 사람들이 풀어놓은 코드를 참조해서 풀었다 ㅠ
Given a sorted array nums, remove the duplicates in-place such that each element appears only once and returns the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
정렬 된 배열 nums가 주어지면 중복 항목을 제거한 새 길이를 리턴
이때, 공간복잡도는 O(1)로 유지, 즉 새로운 배열 등을 생성하지 않아야 한다.
Input: nums = [0,0,1,1,1,2,2,3,3,4]
Output: 5, nums = [0,1,2,3,4]
Explanation: Your function should return length = 5, with the first five elements of nums being modified to 0, 1,
nums[length]
에 할당 length
1증가 slice()
로 nums에 중복되지 않는 값으로 이루어진 배열 할당/**
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function(nums) {
let length = 0;
for(let i=0; i<nums.length; i++) {
if(nums[i] !== nums[i+1]) {
nums[length] = nums[i];
length++;
}
}
nums = nums.slice(0, length);
//console.log(nums);
return length;
};