程序员

力扣 27 移除元素

2020-07-08  本文已影响0人  zhaojinhui

题意:给定一个数组,和一个数,移除数组中的给定数

思路:

  1. 设定两个指针,一个记录当前合法的数组最后的位置end,一个记录遍历到当前数组的位置runner
  2. 遍历数组,如果当前遍历到的数字不是指定的数字,那么把它加到合法的数组最后的位置并end++并继续遍历数组,否则只继续遍历数组
  3. 遍历后,数组开头到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;
    }
}
上一篇下一篇

猜你喜欢

热点阅读