조컴퓨터

27. Remove Element 본문

LeetCode/Algorithms

27. Remove Element

챠오위 2021. 10. 19. 00:53

 

배열로 해결함

 

class Solution {
    public int removeElement(int[] nums, int val) {
        int idx = 0;
        for( int i=0; i<nums.length; i++ ) {
            if( nums[i] != val ) {
                nums[idx] = nums[i];
                idx++;
            }
        }
        return idx;
    }
}

 

인덱스 값을 0부터 설정

for문 돌린 nums 값과 주어진 val 값을 비교

비교한 값이 같지 않을 때의 nums 값을 nums[idx] 값에 대입

 

1) nums = [3,2,2,3], val = 3
nums[0] != 3 / 3 == 3
nums[1] != 3 / 2 != 3 
nums[0] = nums[1]
2 2 2 3 
idx = 1
nums[2] != 3 / 2 != 3
nums[1] = nums[2]
2 2 2 3
idx = 2
nums[3] != 3 / 3 == 3


2) nums = [0,1,2,2,3,0,4,2], val = 2
nums[0] != 2 / 0 != 2 
nums[0] = nums[0]
0 1 2 2 3 0 4 2
idx = 1
nums[1] != 2 / 1 != 2 
nums[1] = nums[1]
0 1 2 2 3 0 4 2
idx = 2
nums[2] != 2 / 2 == 2
nums[3] != 2 / 2 == 2
nums[4] != 2 / 3 != 2
nums[2] = nums[4]
0 1 3 2 3 0 4 2
idx = 3
nums[5] != 2 / 0 != 2

nums[3] = nums[5]

0 1 3 0 3 0 4 2

idx = 4
nums[6] != 2 / 4 != 2

nums[4] = nums[6]

0 1 3 0 4 0 4 2

idx = 5

 

 

 

'LeetCode > Algorithms' 카테고리의 다른 글

35. Search Insert Position  (0) 2021.10.20
28. Implement strStr()  (0) 2021.10.20
26. Remove Duplicates from Sorted Array  (0) 2021.10.17
*21. Merge Two Sorted Lists  (0) 2021.10.17
*20. Valid Parentheses  (0) 2021.10.17