删除元素专题

这篇也是凑数的 ...

题目 :

 LeetCode 27.移除元素 : 

 27. 移除元素

删除元素专题_第1张图片

分析  :

快慢指针 :

定义两个指针slow和fast,初始值都是0。Slow之前的位置都是有效部分,fast表示当前要访问的元素。

这样遍历的时候,fast不断向后移动:

  • 如果nums[fast]的值不为val,则将其移动到nums[slow++]
  • 如果nums[fast]的值为val,则fast继续向前移动,slow先等待

删除元素专题_第2张图片

这样,前半部分是有效部分,后半部分是无效部分

解析 : 

class Solution {
    public int removeElement(int[] nums, int val) {
        int slow=0;

        for(int fast = 0;fast < nums.length; fast++){
            if(nums[fast] != val){
            nums[slow++] = nums[fast];
            }
        }
        return slow;
    }
}

你可能感兴趣的:(算法村,算法,leetcode,数据结构)