首页 > 其他分享 >1.3 关于双指针的一些总结

1.3 关于双指针的一些总结

时间:2023-04-29 09:34:49浏览次数:40  
标签:总结 slow val nums int 1.3 fast 数组 指针

这篇内容主要是针对双指针的一些总结,方法比较巧妙,主要核心原理就是:有一个快指针fast、一个慢指针slow,slow指针主要作用就是存储真正的数组(也就是处理之后的结果),fast是辅助寻找元素,然后往slow里面放。

典型例题:

描述:

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。(注意:需要返回的是int值,也就是需要返回数组长度)

示例:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。
例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

 

代码解决如下:

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];
                slow++;
            }
        }
        return slow;
    }
}

 这个题目它的要求就是不创建新的数组,就在原数组上进行改动,这个是十分重要的。

标签:总结,slow,val,nums,int,1.3,fast,数组,指针
From: https://www.cnblogs.com/ljy888/p/17363575.html

相关文章

  • PTA题集4-6总结
    一,前言题集四主要考察了arraylist数组的运用,面向对象的封装性,运用数组高效率去重以及运用数组的一些自带方法解决问题,题量较小,除了7-1之外,其它题目难度较低。除此之外,7-6要求我们自主学习Scanner类中nextLine()等方法、String类中split()等方法、Integer类中parseInt()等方法的用......
  • 分类模型的性能评估指标总结
    机器学习中所用模型的好坏需要通过一些量化的指标来评估。对于分类模型,是通过:1)精度(Accuracy);2)准确率(Precision);3)召回率(Recall);4)F1分数;5)ROC(Receiveroperatingcharacteristiccurve)曲线;6)AUC(AreaUnderCurve)曲线来实现的。二分类模型对于二分类问题,通常将两个类别称为正类和负类。......
  • 总结20230428
    代码时间(包括上课):1h代码量(行):30行博客数量(篇):1篇相关事项:1、今天上午第一节课是计算机网络,开启了运输层的新篇章。2、今天上午第二节是概率论,讲的是概率论的方差、协方差、相关系数等知识。3、今天晚上打算在学一点Javaweb的知识。......
  • 每日总结-23.4.28
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd&qu......
  • 4.28每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd&qu......
  • 4.28每日总结
    /*submitassignmentDimQuery*提交作业信息模糊查询,输入序号,名称,截止时间,所属课程id,所属老师id,文字信息中的一项或多项,实现模糊查询,6项都不输入则为全部显示*输入参数:序号id(String),学生学号student_id(String),时间time(String),所属发布作业idpu_ass_id(String......
  • 每日总结2023-04-28
    今天完成了ANdroid中的找回密码packagecom.example.math;/**找回界面*/importstaticandroid.widget.Toast.LENGTH_SHORT;importandroidx.appcompat.app.AppCompatActivity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.view.View;import......
  • CSS知识点总结
    CSS知识点总结文章内容可能较多且杂乱,可以查看页面右方的目录,以及使用Ctrl+F搜索页面内容进行内容定位。常用属性推荐搭配文档使用,可以复制属性名,到文档查看该属性对应的可选值。......
  • 023 指针数组和数组指针
     /*一:原理二:指针数组三:数组指针*/ 一:原理定义变量:intnum=1;1组合:符号+名称(1)符号:数据类型(2)名称:要操作的数据类型(3)符号为名称所服务的。2优先:(1)默认优先级(2)离符号近(从......
  • 题目集4~6的总结性Blog2
    目录1、前言2、设计与分析3、踩坑心得4、改进建议5、总结题目集4:1、菜单计价程序-32、有重复数据3、去掉重复数据4、单词系统与排序5、面向对象编程(封装性)6、GPS测绘中度分秒转换7、判断两个日期的先后、计算间隔天数、周数 题目集5:1、正则......