Given an array and a value, 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 in place with constant memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Example:
Given input array nums = [3,2,2,3]
, val = 3
Your function should return length = 2, with the first two elements of nums being 2.
大致说一下题意:
就是把含有val的元素,都移到数组的后面去。然后返回这个数组除了val之外,有多少个元素
public class Solution {
public int removeElement(int[] nums, int val) {
int begin = 0;
int end = nums.length - 1;
while(begin <= end){
if (nums[begin] != val)
begin++;
else if(nums[end] == val)
end--;
else{
nums[begin++] = nums[end--];
}
}
return begin;
}
}