
class Solution {
public int removeElement(int[] nums, int val) {
int k = 0;
int valCnt = 0;
for (int i = 0; i < nums.length; i++) {
if(nums[i] == val) valCnt++;
}
for (int i = 1; i <= valCnt; i++) {
for (int j = 0; j < nums.length; j++) {
if(nums[j] == val) {
for (int x = j+1; x < nums.length; x++) {
nums[x-1] = nums[x];
}
}
}
}
k = nums.length-valCnt;
return k;
}
}
- In-place로 처리를 할 때는 Two Pointer로 해결할 수 있는 경우가 많음
- j를 옮겨가면서 val과 같은지 확인하고, 다르면 j의 값은 i에 넣고 i위치를 하나 올림
class Solution {
public int removeElement(int[] nums, int val) {
int i = 0;
for (int j = 0; j < nums.length; j++) {
if(nums[j] != val) {
nums[i] = nums[j];
i++;
}
}
return i;
}
}

'JAVA > leetcode' 카테고리의 다른 글
[LeetCode] Array - Check If N and Its Double Exist (0) | 2021.08.05 |
---|---|
[LeetCode] Array - Remove Duplicates from Sorted Array !! (0) | 2021.08.05 |
[LeetCode] Array - Merge Sorted Array (0) | 2021.08.05 |
[LeetCode] Array - Duplicate Zeros !! (0) | 2021.08.05 |
[LeetCode] Array - Squares of a Sorted Array (0) | 2021.08.05 |