LeetCode——双指针

力扣hot100二刷——哈希、双指针、滑动窗口 第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。 阅读详情

双指针

Easy

283.零移动

题目描述

image

思路

遍历数组,将数组中的非零元素全部前移,如:[1,0,2,0,3,0,4,0]变为[1,2,3,4,x,x,x,x],最后将数组的后count位用0填充。

实现方法

双指针:i用于循环遍历数组,lastNumberNotZero表示数组中已填充的最后一位。
零元素计数器:count。
若a[i] == 0则count++。否则则将该非零元素移动至nums[++lastNumberNotZero]。

代码
class Solution {
    public void moveZeroes(int[] nums) {
        int lastNumberNotZero = -1;
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0){
                nums[++lastNumberNotZero] = nums[i];
            }else {
                count++;
            }
        }
        for(int i = nums.length-count; i < nums.length; i++){
            nums[i] = 0;
        }
    }
}   

26.删除排序数组中的重复项

141. (判断)环形链表

思路
  • 使用两个指针fast和slow
  • 每次循环前判断fast.next和fast.next.next是否等于null
    • 若等于有其一等于null则表示,链表不循环
  • 若链表成环,则fast与slow必回相遇
代码
public class Solution {
    public boolean hasCycle(ListNode head) {
        if (head == null){
            return false;
        }
        ListNode fast = head, slow = head;
        do{
            if (fast.next == null || fast.next.next == null){
                return false;
            }
            slow = slow.next;
            fast = fast.next.next;
        }while (slow != fast);

        return true;
    }
}
别再手动折腾了!PICO Unity SDK 一键配置开发环境保姆级教程(含PDC串流调试) 本文详细介绍了PICO Unity SDK的一键配置功能,帮助开发者快速搭建VR开发环境。通过自动化配置流程,大幅减少手动设置时间,提升开发效率。文章还涵盖了PDC串流调试技巧和常见问题解决方案,是PICO VR开发的实用指南。 阅读详情

相关推荐

【虚幻引擎】UE4初学者系列教程基础篇-全中文新手入门教程(UE5系列继续更新)

菜单栏菜单栏当中有文件、编辑、窗口帮助。文件当中可以进行一个关卡的新建、关卡的打开、关卡的保存还有就是打包项目,(项目大于关卡,项目里面可能有几百个关卡),这是比较常用的几个,这里可以看到打包当中有安卓端HTML5端,IOS端linux,还有就是TVOS(苹果电视)、windows的一些端口的一些设置。还可以打开最近打开的项目。关卡编辑器:工具栏3.3 “模式”面板保存所有:ctrl+shift+s(有的软件截屏也是这个按键需要注意)3.4 “内容浏览器”面板缩放:ctr+鼠标滚轮3.5.视口面板。

qq_45206556的博客 2万+

力扣(leetcode)题目总结——双指针篇

本系列文章初衷是为了按类别整理出力扣(leetcode)最经典题目,一共100多道题,每道题都给出了非常详细的解题思路、算法步骤、代码实现。因为力扣题目顺序是随机的,并没有按照算法分类,导致同一类型的算法强化训练不够。所以本系列文章就是来帮你完成算法分类,针对每种算法做强化训练,保证让你以后遇到题目直接秒杀。本篇文章主要是针对双指针相关的算法题,一次性帮你搞定所有双指针题!

weixin_46571171的博客 1635

Oracle数据库RMAN异机恢复保姆级教程,按照步骤来操作,一次就成功!

本文深入解析RMAN异机恢复四大核心场景(演练、数据恢复、故障应急、测试环境搭建),提供从备份到验证的完整步骤和实战脚本。包含RAC到单机迁移技巧、路径调整、常见报错解决方案,助你彻底掌握数据库恢复的“救命技能”。DBA必备干货,强烈推荐

Jackyimi的博客 932

力扣(leetcode)hot 100双指针看这一篇就够了

这里是阳明Coding,给大家分享一下力扣hot100里面关于双指针的题目的一些解决方法及思路。如果有其他想法或者思路。我也会顺嘴提一下。

yyyCode的博客 1521

Linux系统安装AutoDockTools、AutoGrid和AutoDock并实现分子对接(详细讲解)

linux系统为centos7.0 按照下面操作安装AutoDockTools(MGLTools) 1. 下载安装包,链接(https://ccsb.scripps.edu/mgltools/downloads/),我的linux系统是64位,下载红色标记源代码,拷贝入linux目标文件夹下。 2. shell终端进行安装: 1. 终端进入安装包所在文件夹,并获取root权限;赋予代码安装权限; cd /home/... #目标文件夹,根据目标程序文件位置进行更改 su #获

carlos_zhao的博客 1万+

VT System故障排查指南:从License验证到硬件连接全解析

本文详细解析VT System故障排查全流程,从License验证、Real Bus模式设置到硬件连接与VT6000组网配置。针对VT7900板卡等特殊设备提供专业解决方案,并分享系统级故障的二分法排查技巧,帮助工程师快速定位和解决CANoe环境下的各类硬件识别问题。

weixin_29269441的博客 248

力扣数组与双指针题目精选(将双指针运用到极致)

精选力扣中可以使用双指针解法的题目,增强对于双指针的灵活运用

2301_78179333的博客 195

Triplet Loss调参实战:Margin选多少?距离函数用哪个?我的模型为什么训不动?

本文深入探讨了Triplet Loss调参中的关键问题,包括margin参数的选择、距离函数的比较以及模型训练不动的常见原因。通过实战案例和技术分析,提供了针对不同场景(如人脸识别、商品图像、文本匹配)的margin黄金区间,并对比了欧式距离与余弦相似度的适用场景。文章还介绍了困难样本挖掘的最新策略和模型诊断的实用清单,帮助开发者高效解决度量学习中的工程难题。

weixin_29050271的博客 406

力扣数组之双指针

双指针就是在纸上画多个指针,然后推演,比如快慢指针,前后指针等等!!!外加一个index存放新数组的下标。

2301_78138281的博客 1183

在 SAP BTP 中为 SAP AI Core 创建 Service Instance 和 Service Key 的完整实战指南

摘要:本文详细介绍了在SAP BTP上创建AI Core服务实例和密钥的关键步骤,这是实现ABAP系统与Gen AI大语言模型集成的核心技术环节。文章通过一个制造业财务问答场景的案例,系统梳理了从前提条件准备、架构理解到具体操作的全过程,重点解析了service instance创建、X.509证书配置等关键节点。特别强调了Extended计划选择、证书格式等易错点,为ABAP开发人员实现Gen AI场景提供了实用指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 263

ONVIF协议简介与协议测试工具使用详解

Onvif协议及协议测试工具使用详解

dvlinker的技术专栏 3万+

力扣刷题总结之双指针

双指针思想 双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的 。 双指针是很多算法的基础,如归并排序、滑动窗口、字符匹配(左右括号匹配)等。滑动窗口即维持一段区间。 在很多情况下,双指针能帮助我们找到空间或是时间复杂度更低的解。比单个指针来回移动的效率从o(n2)提高到o(n)。 算法框架 ...

ComeOnMr博客 749

fasterlio原理及代码框架梳理

Faster-LIO 的优势是在保持同等高精度的前提下,显著提升计算效率,以支持更极端的应用场景(如高速无人机)和更廉价的硬件平台。可以把 Faster-LIO 理解为用一把更快的“空间哈希筛子”(iVox)替换了原来精细的“动态平衡树”(ikd-Tree),从而在精度损失极小的情况下,实现了效率的显著提升。:只在实际有地图点的空间区域动态创建和保留体素单元,形成一个稀疏的体素地图。是关键:将去畸变点云中的每个点,在 iVox 维护的局部地图中搜索近邻(如5个最近点),构建点到面的距离残差。

Studying…… 243

Leetcode力扣常考高频题-双指针

考察频率由两部分组成: Leetcode100题 面试考察频率(https://codetop.cc/#/home)表格中默认超过30次即为高频题 题号 难度 题目描述 解法 考察频率 11 中等 能装最多水的容器 双指针 Leetcode100 15 中等

luy0710的博客 223

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【双指针】双指针算法详解两道经典OJ【力扣27,力扣26,力扣38】超详细算法教程

【双指针】双指针算法详解两道经典OJ【力扣27,力扣26,力扣38】超详细算法教程 今天又又到了我们刷力扣题的时间啦! 今天博主给大家带来的三道题是: 27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组 这三道题,都是双指针算法题的一个入门题,掌握这三道题,认识双指针算法,是我们今天的目标! 文章目录前言OJ27 移除元素题目描述算法分析实现代码OJ26 删除有序数组中的重复项题目描述算法分析实现代码OJ88 合并两个有序数组题目描述算法分析实现代码尾声 前言 那么这里博主先安利一

系统编程、网络编程 977

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【力扣LeetCode热题h100】哈希、双指针、滑动窗口

本文总结了力扣LeetCode热题H100中关于哈希、双指针和滑动窗口的解题方法。主要内容包括: 两数之和问题:介绍了暴力解法(O(n²))、排序+双指针法(O(nlogn))和哈希表法(O(n))三种解决方案,比较了不同方法的时间复杂度。 字母异位词分组:通过将字符串排序作为哈希表的键,将异位词分组,时间复杂度为O(nklogk)。 最长连续序列:讨论了排序后遍历的解法(O(nlogn)),并提示存在更优的O(n)解法。 文章着重分析了各算法的复杂度,并提供了C++和Java的实现代码,强调哈希表在解决这

qq_41725967的博客 711

LeetCode算法(双指针)

今天的题目主要都是力扣前100中,关于双指针的题。

jiangyule的博客 1074

【LeetCode】【力扣刷题】三数之和 双指针操作

完结

weixin_43766021的博客 206

【算法专题】双指针算法之18. 四数之和(力扣)

🏆本篇主题为:【算法专题】双指针算法之18. 四数之和(力扣)

cilmy23的note 1297

力扣热题100——双指针

这种区间里求面积的题目,对撞指针是常用的做法(就是左右两个指针)。我们设置左右两个指针分别扫描数组,对于扫到的区间计算面积,然后现在该移动哪个指针呢?因为更大的那一边可能还会参与更大的容器的构成,所以不能移动!这道题的关键是我们要明白,如果一个柱子的左右两边有比它更高的柱子,我们设置左边比它高的柱子的最大值为。那么我们假设这个数组是有序的(从小到大排序),那么我们就可以利用两个指针从前后扫描来枚举!和盛水最多的容器一样,这种区间求面机的题目,常常可以用对撞指针来求解(这道题也可以有其他解法)

qq_45769627的博客 1148

力扣100题解及笔记 双指针

双指针法的主要优点是高效性,通常能够将问题的时间复杂度降低到线性(O(n))或线性对数(O(n log n))

hiahiakk的博客 1025

双指针-202.快乐数-力扣(LeetCode)

我们可以知道int的最大值为2.1x10^9,我们取9999999999,这比int大的多了,这时它的平方数为9^2x10=810,所以我们得到了一个范围及int产生的平方数的范围【1,810】,当经历811次操作后,根据鸽巢原理,必然会出现一个相同的数,即会出现循环)= fast,为了避免赋值时slow和fast值相同导致不能进入循环,我们可以让fast指向下一个平方数,为了方便计算平方数,我们需要自己实现一个函数去计算平方数。我们能发现平方数是不断更新的,所以我们可以用平方数的值用于做双指针。

black_bear_white的博客 533

力扣 11.盛水最多的容器(双指针)

力扣,菜菜奋斗日记,C++

2402_88149600的博客 327

LeetCode力扣刷题——玩转双指针

LeetCode刷题,双指针问题。如果两个指针指向元 素的和大于给定值,我们把右边的指针左移一位,使得当前的和减少一点。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。因为数组已经排好序,我们可以采用方向相反的双指针来寻找这两个数字,一个初始指向最 小的元素,即数组最左边,向右遍历;给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。

指北针_N的博客 672

leetcode - 双指针问题

经过以上练习,我们应该可以显然地感受到这类题的特点:从两端向中间出发,逐渐缩小数据范围,必要时,还可以借助于数据的单调性一起使用;借助于单调性会极大地提高代码的效率;

Distinguished_z的博客 1307

Leetcode力扣解题记录--第27题(双指针)

在一开始时,慢指针slow和快指针都处于0号位置,但是在算法的进行过程中,遇到目标值val时,fast指针会跳过,所以fast始终是大于等于slow,再将非目标值赋值给nums[slow],最终返回slow,也就是新的不含val值的最后一个元素的下标。简单思想:两层for循环,遇到val值第二层for循环把后续的元素依次往前移动,进入一次二层循环flag就加一,最后返回nums.size() - flag就行了。你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。

qq_44846784的博客 1936

LeetCode 双指针章节

LeetCode 中与双指针算法相关的题目,解题思路,代码实现讲解。

有耐心做好简单事情,坚持写blog 1123
上一篇: 在idea中导入来自eclipse的maven项目
下一篇: LeetCode——桶的思想
Kelvin____
博客等级 码龄9年 6粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值