首页 > 编程语言 >java中双指针算法(快指针与慢指针)

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

时间:2024-01-25 10:37:02浏览次数:21  
标签:java temp nums int 中双 指针

双指针法:设置两个指针,分别是快指针和慢指针,分别是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;

    

    }

 

         

 

标签:java,temp,nums,int,中双,指针
From: https://www.cnblogs.com/hellotoworld/p/17986469

相关文章

  • 「Java开发指南」MyEclipse如何支持Spring Scaffolding?(二)
    在上文中(点击这里回顾>>),主要为大家介绍了使用Spring的Scaffolding应用程序,本文将继续讲解CRUDScaffolding。MyEclipsev2023.1.2离线版下载MyEclipse技术交流群:742336981欢迎一起进群讨论2.CRUDScaffoldingScaffolding指的是MyEclipse广泛代码生成功能的超集,从生成一组特......
  • 学习Java8中StreamAPI的笔记
    本次笔记记录一下我自己学习Stream流的一个情况。第一种:使用Stream流来代替增强for循环进行赋值:这是使用增强for循环的写法:publicstaticvoidmain(String[]args){ArrayList<String>strings=newArrayList<>();strings.add("张三");strings.add("李四");strings.add......
  • Java 多线程交替打印
    目录题目方案一:synchronized方法二:ReentrantLock方法三:ReentrantLock+Condition(非公平锁)方法四:ReentrantLock+Condition(公平锁)方法五:Semaphore题目使用三个线程T1、T2、T3,如何让他们按顺序交替打印10次ABC。方案一:synchronizedpublicclassSynchronizedLockPrint......
  • Java String
    String概览String被声明为final,因此它不可被继承。内部使用char数组存储数据,该数组被声明为final,这意味着value数组初始化之后就不能再引用其它数组。并且String内部没有改变value数组的方法,因此可以保证String不可变。publicfinalclassStringimplemen......
  • Java内存分配与回收策略
    HotSpot虚拟机GC分类针对HotSpot虚拟机的实现,GC可以分为2大类:部分收集(PartialGC)新生代收集(MinorGC/YoungGC):回收新生代,因为新生代对象存活时间很短,因此MinorGC会频繁执行,执行的速度一般也会比较快。老年代收集(MajorGC/OldGC):只对老年代进行垃圾收集。需......
  • java类文件结构
    类文件概述JVM可以理解的代码就叫做字节码(即扩展名为.class的文件,即类文件),它不面向任何特定的处理器,只面向虚拟机。Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。字节码并不针对一种特定的机器,因此Java......
  • java垃圾收集
    垃圾回收的脑图垃圾收集主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后就会消失,因此不需要对这三个区域进行垃圾回收。判断一个对象是否可被回收1.引用计数算法为对象添加一个引用计数器,当对象增......
  • Java学习日记 Day10
    Spring框给架:AOP:AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现日志处理,权限控制,性能检测,事务控制等。JDBCtemplate:我们做好配置文件以及加入依赖后可以通过JDBCtemplate技术来简化对数据库的操作。Spring事务:实现方式主要是注......
  • JAVA XStream简单使用
    XStreamxStream=newXStream(newStaxDriver());xStream.addPermission(AnyTypePermission.ANY);//不加后面转实体变异常xStream.processAnnotations(resultDTO.getClass());resultDTO=(ResultDTO)xStream.fromXML(result); 1、实体类设置别名  @XStreamAlias("Ma......
  • JavaScript ES6中 module , import和export
      假如你想直接在html的script里面使用import,你会遇到以下这两个问题:需要给script标签添加type='module'属性会遇到跨域问题,不单独启用一个服务器无法解决如果不启动一个server,访问js用的协议是file,不在浏览器跨域允许的协议中。因此无法做到拿到js文件,......