双指针算法题笔记

作者 : admin 本文共378个字,预计阅读时间需要1分钟 发布时间: 2024-06-10 共1人阅读

1、移动零

双指针算法题笔记插图

class Solution {
    public void moveZeroes(int[] nums) {
        int left=0;
        int right=0;
        for(right=0;right<nums.length;right++){
            if(nums[right]!=0){
                if(nums[left]==0){
                    int temp=nums[left];
                    nums[left]=nums[right];
                    nums[right]=temp;
                }
                left++;
            }
        }
    }
}

两个指针将一个数组划分三个部分:

[0,left-1] 为已处理部分,按照题目意思就是非零部分

[left,right-1]也是已处理部分,按照题目意思就是全零部分

[right,nums.length-1]未处理部分,如果nums[right]==0则不用处理。如果nums[right]!=0则与第一个0交换位置

2、复写零

本站无任何商业行为
个人在线分享 » 双指针算法题笔记
E-->