力扣 27 移除元素
2020-07-08 本文已影响0人
zhaojinhui
题意:给定一个数组,和一个数,移除数组中的给定数
思路:
- 设定两个指针,一个记录当前合法的数组最后的位置end,一个记录遍历到当前数组的位置runner
- 遍历数组,如果当前遍历到的数字不是指定的数字,那么把它加到合法的数组最后的位置并end++并继续遍历数组,否则只继续遍历数组
- 遍历后,数组开头到end所指的位置即为合法数组
思想:快慢指针
复杂度:时间O(n),空间O(1)
class Solution {
public int removeElement(int[] nums, int val) {
int runner = 0;
int end = 0;
while(runner<nums.length) {
if(nums[runner] != val)
nums[end++] = nums[runner];
runner++;
}
return end;
}
}