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;
}
}
Given an integer array nums and an integer val, remove all occurrences of val in nums in-place. The relative order of the elements may be changed.
Since it is impossible to change the length of the array in some languages, you must instead have the result be placed in the first part of the array nums. More formally, if there are k elements after removing the duplicates, then the first k elements of nums should hold the final result. It does not matter what you leave beyond the first k elements.
Return k after placing the final result in the first k slots of nums.
숫자형 배열nums와 숫자 val이 주어진다. val과 동일한 nums의 elements를 모두 삭제하고 기존 elements의 수를 return 하라.
먼저 index를 0으로 선언한다.
전체 배열을 도는 for문안에 조건문을 넣는다.
nums의 j번째 요소와 val이 동일하지 않을때는 기존의 배열을 리턴하고 index를 1증가시킨다.
nums 의 j번째 요소가 val과 동일할때는 if문을 무시하고 i도 증가하지 않는다. 다음요소(nums[j+1]) 가 val과 동일하지 않을때는 nums[i]에 nums[j+1]이 할당되어 값을 엎어쓰게된다.