Given an array nums and a value val, remove all instances of that value in-place and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
The order of elements can be changed. It doesn’t matter what you leave beyond the new length.
Example 1:
Given nums = [3,2,2,3], val = 3,
Your function should return length = 2, with the first two elements of nums being 2.
与LeetCode26题思路一样:
依次判断数组元素是否与val值相等,如果不相等,就可以将元素数j 加一,将值赋值给numsj;
class Solution {
public int removeElement(int[] nums, int val) {
//take the element of leftover in the array as j;
//the original array i;
//judge each element in the array is equal to val? if unequal, j++,and nums[j]= nums[i];
int j = 0;
for (int i =0; i<nums.length; i++){
if (nums[i]!=val){
nums[j]= nums[i];
j++;
}
}
return j;
}
}