代码随想录 数组-移除元素

题目:27.移除元素

代码随想录 数组-移除元素_第1张图片

初始代码

class Solution {
    public int removeElement(int[] nums, int val) {

    }
}

解题思路

  • 使用双指针(快慢指针)
  • 用非目标元素的值去替代目标元素的位置, 即示例1中用2后面非2的元素去代替2的位置
  • 快指针先走,如果快指针所指当前元素为非目标元素时,慢指针再走
  • 当移到目标元素时,慢指针停下不移动快指针继续移动,找到非目标元素后用快指针所在索引的元素去代替慢指针所指元素

代码

class Solution {
    public int removeElement(int[] nums, int val) {
        int s = 0;
        for (int f = 0; f < nums.length; i++) {
            if (nums[f] != val) {
                nums[s++] = nums[f];
            }
        }
        return s;
    }
}

这里的s作为慢指针,f作为快指针

你可能感兴趣的:(代码随想录,数据结构)