[leetcode] Array/String (Easy) - 27. Remove Element

brandon·2025년 5월 19일
0

leetcode-array/strings

목록 보기
2/20

Intuition 🤔

Sliding window 같은 느낌의 two pointers 문제이다.
핵심은 underscore(_) 되어 있는 인덱스들은 아무 숫자여도 상관없음.
그러므로 하나의 포인터는 현재 overwrite 해야하는 인덱스, 다른 하나는 remove 할 val을 건너뛴 다음 overwrite에 사용될 값을 가리키면 된다.

답안

class Solution {
    public int removeElement(int[] nums, int val) {
        int forwardIndex = 0; 
        int elementIndex = 0; 

        while (forwardIndex < nums.length) { 
            if (nums[forwardIndex] != val) {
                nums[elementIndex] = nums[forwardIndex];
                elementIndex++; 
            }

            forwardIndex++; 
        }

        return elementIndex; 
    }
}
profile
everything happens for a reason

0개의 댓글