赞
踩
1、给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
- public int removeElement(int[] nums, int val) {
- //利用双指针,一个i 一个j 当j指向的值不是给定的值时,
- //则需要将此值按照下标 i (因为j比i跑得快,只有在不出现指定元素时i才会往后移,否则只有j会
- //往后移,直到j再一次寻找到与指定值不同的值,而且i此时刚好指向的是第一个与指定元素相同的
- //值)依次重排数组元素。
- int i = 0;
- for (int j = 0; j < nums.length; j++) {
- if (nums[j]!=val) {
- nums[i] = nums[j];
- i++;
- }
- }
- return i;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。