-
leetcode top interview 150 | Remove Duplicates from Sorted ArrayPS 2023. 8. 23. 22:39
Question
오름차순으로 정렬된 int 배열 nums를 각 요소가 한번씩만 나타나도록 제자리에서 중복을 제거한다. 그 후 고유한 요소의 개수를 리턴한다.
Accepted Code
class Solution { public int removeDuplicates(int[] nums) { int idx = 0; int beforeNum = -101; for(int i=0; i<nums.length; i++){ if(beforeNum != nums[i]){ nums[idx++] = nums[i]; } beforeNum = nums[i]; } return idx; } }
solve
nums 배열은 정렬되어있는 상태기 때문에 현재 값이 다음 인덱스에 위치한 값과 동일하다면 제거를 해줘야한다.
따라서 이전의 값을 저장해서 현재값과 비교해주기 위해 beforeNums 변수를 만들어주고 nums[i]의 최솟값인 -100보다 작은 -101로 초기화해줬다.
이전 값과 동일하지 않으면 저장을 해야하니 idx 변수를 증가시켜가며 nums의 first index에 저장한다.
반대로 이전값과 동일하면 삭제를 해야하니 nums에 저장하지 않고 다음 인덱스에 있는 value와 비교하기 위해 beforeNums를 계속해서 갱신해준다.
Remove Duplicates from Sorted Array - LeetCode
Can you solve this real interview question? Remove Duplicates from Sorted Array - Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place [https://en.wikipedia.org/wiki/In-place_algorithm] such that each unique element ap
leetcode.com
'PS' 카테고리의 다른 글
leetcode top interview 150 | Two Sum II - Input Array Is Sorted | Two Pointer (0) 2023.08.28 leetcode top interview 150 | Valid Palindrome | Two Pointer (0) 2023.08.28 leetcode top interview 150 | Best Time to Buy and Sell Stock (0) 2023.08.23 leetcode top interview 150 | Remove Element (0) 2023.08.23 java 프로그래머스 lv3 보석쇼핑 | sliding window + map 활용 (0) 2023.06.29