java中双指针算法(快指针与慢指针)

双指针法:设置两个指针,分别是快指针和慢指针,分别是i和j

        设置一个变量temp用来储存第一个数据nums[0] 

过程:1.nums[0]   temp   他们两个相等   那么temp不需要改变,i=i+1,j变,i=1,j=1

    

    2.nums[i=1],temp   他们两个相等,temp不变,i=i+1,j不变

   3.num[i=2]=1 和temp不相等,那么i=i+1,j=j+1,temp=nums[i]

相关代码:

public class test26 {
    public static int removeDuplicates(int[] nums) {
        int j=1;
        int temp = nums[0];
        for (int i = 0; i < nums.length; i++) {
            if(nums[i]==temp){
                continue;
            }else{
                nums[j] = nums[i];
                temp = nums[j];
                j++;
            }
        }
        return j;

    

    }

 相关知识:

https://blog.csdn.net/2301_77053417/article/details/134915793

https://blog.csdn.net/ls199848/article/details/129016351

 

         

 

posted on 2024-01-25 10:23  无名之辈的ggb  阅读(20)  评论(0编辑  收藏  举报