赞
踩
给定 nums = [3,2,2,3], val = 3,
函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。
你不需要考虑数组中超出新长度后面的元素。。
给定 nums = [0,1,2,2,3,0,4,2], val = 2,
函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。
注意这五个元素可为任意顺序。
你不需要考虑数组中超出新长度后面的元素。
1、使用两个指针,i和j
2、i负责遍历整个数组
3、j相当于表示的是新的下标
遍历数组
如果nums[i] == val时,i++,
如果nums[i] == val时,i++,
…
如果nums[i] != val时,需要把nums[i]元素放到nums[j]位置上
class Solution { public int removeElement(int[] nums, int val) { if(nums == null || nums.length == 0) { return 0; } //新的下标 int j = 0; //遍历数组,判断nums数组里面的元素是否为val for(int i = 0;i < nums.length ;i ++){ if(nums[i] != val) { nums[j] = nums[i]; j++; } } return j; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。