首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
算法
专业抄代码选手
创建于2024-07-08
订阅专栏
一些算法题目
暂无订阅
共216篇文章
创建于2024-07-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【Leetcode】876.链表的中间结点
快慢指针,慢的走一步,快的走两步 再一个注意的就是,循环的退出条件,判断fast.next,如果不存在,fast.next.next指定报错
【Leetcode】86.分隔链表
链表的重组 按照给定规则的重组,小的放前面,大的放后面 这类题目要返回链表,一定要注意弄一个头节点,这样才能进行下去 由这个实现,让我想到了,可以利用这个方法对链表进行排序(但貌似,也不是很好弄)
【Leetcode】23.合并K个升序链表
其实已经做出来了21题,这一题也就不会太难了,调用21题的方法即可 注意处理头节点,以及current节点
【Leetcode】21.合并两个有序链表
用一个新链表来承接所有数据即可 对比当前的两个节点,谁小谁赋值给新链表 这里说的赋值,指的是节点的指向,让当前节点指向满足条件的节点 然后挪动当前节点(12行)以及满足条件的节点(7、10行) 循环完
【Leetcode】19.删除链表的倒数第 N 个结点(倒数第k个节点)
需要返回改变后的链表,那肯定要先弄一个头节点啦 fast指针先走n步,然后slow和fast一起走,直到fast到最后一个节点 注意判断最后fast跳出的条件即可,需要fast指向最后一个节点,那就需
【Leetcode】160.相交链表(遍历链表)
用补全的机制来实现 两个遍历并行 1⃣️.a链遍完了,接着遍历b 2⃣️.b链遍完了,接着遍历a 这样,两个进度就一致了
【leetcode】142.环形链表 II
寻找环的起始点,上图可以看到,如果相遇点是 meet,那么fast肯定走了2n步,slow肯定走了n步
【leetcode】141.环形链表
链表 寻找是否存在环,快慢指针可以解决,注意判断跳出条件即可 如果不用?.的写法,那么就要在while中多判断一项fast.next
【leetcode】1701.平均等待时间
这一题我以为会有什么动态规划之类的骚操作,但是最后还是耿直的思路写下来了 直接按照数组给定的顺序进行遍历,然后计算即可。 如果硬要有骚操作,我想。。。应该是给arrival拍个序吧?
【leetcode】222.完全二叉树的节点个数
计算节点 BFS 其实这里的内层循环也没必要写,不必要细致到层次遍历,去掉内层循环也可 简化版本 DFS 上述的解法还没有涉及到一个问题,就是题目中所提及的完全二叉树,完全二叉树是什么呢? 简而言之就
【leetcode】226.翻转二叉树
BFS 这里采用的是stack,而不是queue,使用pop 因为这里涉及到一个时间优化的问题,使用shift的时候,会让数组都向前挪动一位,时间复杂度是n 直接采用pop就不会出现这个问题 DFS
【leetcode】116.填充每个节点的下一个右侧节点指针
树的遍历 BFS DFS 对于树的两种遍历方式 BFS:使用队列来控制 DFS:递归来控制,需要注意return条件即可 BFS DFS
【leetcode】993.二叉树的堂兄弟节点
这种需要用BFS或者DFS来解决了 BFS 记录好父节点就行,因为每次层次遍历都是在同一层 DFS 对于DFS需要记录下层次深度了 因为不知道找到符合条件的节点的深度,找到后记录深度以及父节点然后判断
【leetcode】543.二叉树的直径
这一题配合最大深度104题食用更佳 首先来看下104题的递归写法代码 上面这种写法如果有点难懂的话,看看下面这段代码 其实逻辑没有任何变化,计算左、右节点的最大深度,然后取出最大深度 +1 +1是因为
【leetcode】3033.修改矩阵
不需要头脑的一题,比较耿直 用一个数组maxCol存下每一列的最大值,然后遍历数组,碰到-1就直接把这一列最大值放上去 上面存在一些小问题,拷贝数组应该是深拷贝 然后找每一列的最大值应该用Infini
【leetcode】724.寻找数组的中心下标
这是一题比较典型的前缀和题目 刚开始拿到题目的时候想的比较耿直,直接求数组和,然后再遍历数组,如果累加到是sum的一半的时候就return,但是不能ac,这里会存在一些边界的问题,最后用前缀和来解决