Given an array and a value, remove all instances of that value and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input array with O(1) extra memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Example:
Given nums = [3,2,2,3], val = 3,Your function should return length = 2, with the first two elements of nums being 2. 我的版本(适合删除元素很多的情况):
class Solution {public int removeElement(int[] nums, int val) {int count=0;for(int i=0;i
其他版本(适合删除元素很少的情况):
public int removeElement(int[] nums, int val) { int i = 0; int n = nums.length; while (i < n) { if (nums[i] == val) { nums[i] = nums[n - 1]; // reduce array size by one n--; } else { i++; } } return n; }