论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
程序人生
›
双指针小小结(数组版)
双指针小小结(数组版)
半亩花草
金牌会员
|
2023-3-20 11:22:18
|
显示全部楼层
|
阅读模式
楼主
主题
799
|
帖子
799
|
积分
2397
双指针用的好,力扣刷题没烦恼~ 话不多说,干货直接塞:
1.双指针的分类
根据自己所刷代码随想录的一点点题目,以及学习算法小抄的解题技巧,我注意到双指针分为以下几种类型:
会有所遗漏,初刷题目,见谅
接下来我会按照我所刷题目的特点进行具体说明。ps:把同向理解成相向,但经过百度发现和相对意思一致,很抱歉orz
2.快慢指针
fast负责对数组进行快速遍历,寻找符合条件的元素,slow则根据fast所寻找元素进行更新,即利用一个for循环完成两个for循环的任务,降低了复杂度。
搜的图,思想很清晰
做题时必须要
确定何时让快指针停下以更新慢指针的索引
,角度不同对于代码的难度也不同。
3.滑动窗口
第一次接触这么有趣的算法!滑动窗口如名字所表示,通过调整双指针的位置动态的对数组中的元素进行增删操作,类似老人用筛子筛谷壳的操作,只不过它必须是连续的。
代码也很有意思,209.长度最小的子数组就利用了这个思想,关键在于如何确定一个for循环应该是表示起始位置还是终止位置,本题中for循环确定为终止位置,否则解法就与暴力解法无疑了,我个人觉得最妙的是这部分代码:
首先,运算符的使用让代码好看许多,另外,nums[i++]的确是我没想到的表示方法,仅仅三行就把滑动窗口的思想表述了出来,美哉!
另外就是一开始所设置的量----int result = INT32_MAX; 其实我并不理解什么意思,后来才知道,初始化时也可以是其他值,但是必须要比数组的长度大,否则在比较子数组时就会被划进去。因此保险起见,设置MAX最为稳妥。
4.左右指针
二分查找的思想与此有关,通过面对面移动指针最终找到目标,我刷的题不多,仅仅知道这个orz.
5.碎碎念时间
没错我又要碎碎念啦!今天是加入代码随想录第五天,第四天的任务还没做,补博客中,很明显感觉到后面的链表专题开始吃力了,一定要坚持,双指针好有意思,我刷题开始上瘾咯!
感谢观看呀~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
半亩花草
金牌会员
这个人很懒什么都没写!
楼主热帖
本周涨粉一倍,我决定再开源一个商超管 ...
YOLOV5 代码复现以及搭载服务器运行 ...
【Redis】BigKey问题
安装Python
.net6下[WPF+yolov5+opencvsharp]
经典Python题目:一个列表或者数组去重 ...
《C++性能优化指南》 linux版代码及原 ...
Spring Boot 宣布移除 run 命令,真让 ...
go-zero插件goctl-swagger的坑
Java集合框架(五)-Collections 和 泛型 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表