当前位置:网站首页>leetcode刷题学习之路
leetcode刷题学习之路
2022-08-03 03:37:00 【bu volcano】
一、数组
2022【7.20】
485最大连续1的个数
(遍历)
【7.21】
283移动零
(双指针 可以原地更改数组)
27移除元素
(双指针 相当于把val移动到最后)
【7.22】
剑指offer_03数组中重复的数字
(重复这个字眼–>哈希表)(技巧:因为把数当成索引的话,那么在数组中就有唯一一个属于它的位置 当一个位置出现两个元素时 就可得到重复的数)
【7.23】
2319 判断矩阵是否是一个 X 矩阵
(反对角线元素性质:i+j=n-1)
599 两个列表的最小索引总和
(相同的字眼:哈希表)
【7.24】
674 最长连续递增序列
(双指针可针对数组原地操作)
二、链表
【7.25】
剑指 Offer 04 二维数组中的查找
(因为数组是有序的,因此把它旋转45°能够得到类似于排序二叉树形式)
203 移除链表元素
(遍历)
【7.26】
剑指 Offer 18 删除链表的节点
(遍历)
剑指 Offer 06 从尾到头打印链表
(反过来的操作字眼:栈或递归)
206 反转链表
(双指针 改变相邻两个节点的方向)
【7.27】
剑指 Offer 22 链表中倒数第k个节点
(倒数K的位置是正数n-k)(双指针中间差K; 快的走到尾,慢的到倒数K位置)
【7.28】
剑指 Offer 25 合并两个排序的链表
(创建假头结点辅助判断大小,当做新链表往后添加元素)
【7.29】
19删除链表的倒数第 N 个结点
(同offer_22题,设置双指针差N个位置;再创建伪头结点让cur指向要删除节点前一个方便删除操作:cur.next=cur.next.next)
24 两两交换链表中的节点
(pre指向假头结点,双指针指向要交换节点:
①pre.next=node2
②node1.next=node2.next
③node2.next=node1
④ pre=node1;node1=node1.next;node2=node1.next.next)
【7.30】
160相交链表
(通过双指针转换成路程相遇问题:建立路程等式,相遇点即是相交点)
141环形链表
(同160题通过快慢双指针转换成相遇问题)
【8.1】
707设计链表
(通过实现addindex来实现addhead(index=0)和addtail(index=size))
三、哈希表
217存在重复元素
(直接遍历时间复杂度太高,因此可以先排序,这样相同的数字就会出现在相邻)
(使用集合可实现查找块;或者使用字典利用数值当索引建立哈希表可实现查找块)
边栏推荐
猜你喜欢
随机推荐
【leetcode热题Hot100】——LRU缓存
QT之鼠标和键盘事件重写
ESP8266-Arduino编程实例-MCP3008-ADC转换器驱动
ClickHouse - Getting Started
基于 Cyclone IV 在 Quartus 中配置 IP 核中的 PLL、RAM 与 FIFO 的详细步骤及仿真验证
谷粒商城一些疑问总结
【leetcode热题Hot100】——任务调度器
(2022牛客多校五)H-Cutting Papers(签到)
(2022牛客多校五)G-KFC Crazy Thursday(二分+哈希)
MATLAB(5)绘图
【obs】启动推流失败 : Output.StartStreamFailed 调用流程
shell之条件语句(条件测试、if语句,case语句)
百度超级链:鼓励企业做自己的链
基于flowable的upp(统一流程平台)运行性能优化(2)
IDEA如何创建父子工程
ClickHouse卸载、重安装
ORACLE中文乱码
数字3d虚拟交互展厅顺应时代发展需求和趋势
云原生(三十一) | Kubernetes篇之平台基本预装资源
ROS2自学笔记:机器视觉基础