您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页算法-双指针法-leetcode-27. 移除元素

算法-双指针法-leetcode-27. 移除元素

来源:化拓教育网
//快慢指针是采用 俩个指针,同步进行移动查找。fast找到满足条件的值时,移动较slow块。

//同向移动
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];
            slow++;
        }
    }
    return slow;
}

//相向移动

public int removeElement2(int[] nums, int val) {
    int slow=0;
    int fast=nums.length-1;
   while (slow<=fast){
        //这里一定要加等于,让slow指针移动到变换之后的数组最后一位。
        while (slow<=fast&&nums[slow]!=val){
            slow++;
        }
        while (slow<=fast&&nums[fast]==val){
            fast--;
       }
        if (slow<fast){
            nums[slow]=nums[fast];
            slow++;
            fast++;
        }

   }
   return slow;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务