思路
和26一样,遍历数组,然后判断数组元素的值是否与目标不相等,不相等,给nums[j]==nums[i];j++,最后return j;
如果元素相等于目标值的话,nums[i]=nums[--n]
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;
}
for实现上面的思路
class Solution {
public int removeElement(int[] nums, int val) {
int pivot = nums.length - 1;
for (int i = 0; i <= pivot; i++)
if (nums[i] == val) nums[i--] = nums[pivot--];
return pivot < 0 ? 0 : pivot + 1;
}
}
}
return n;
}