首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
基本数据结构与算法
orochiZhang
创建于2021-08-09
订阅专栏
记录leetcode解题思路,基本的数据结构知识点。使用的编程语言是Python。
暂无订阅
共16篇文章
创建于2021-08-09
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
二叉树的最大深度
非递归思路 1. 构建一个先进先出的队列。 2. 记录每一层最后一个节点end,第一层end是root。 3. 层序遍历,队列pop一个节点,把节点的子节点加到队列。 4. 每次pop一个节点,
【最小栈】常数时间内检索到最小元素的栈
思路: 每次入栈都入2个元素,一个是栈顶元素,一个是栈中最小值。 每次出栈需要出2个元素。 空间复杂度O(2n)
【快慢指针】删除链表的倒数第N个节点
删除链表的倒数第N个节点 双指针的思路: 快指针先走N步,然后快指针和慢指针一步一步地走。 当快指针走到结尾的时候,慢指针指向的地方就是该删除的节点。 空间复杂度为O(1) 注意判断: 链表是否为空
二叉树前,中,后序的递归与非递归遍历
前序遍历 leetcode-二叉树的前序遍历 给定一个二叉树,返回它的前序遍历。 示例: 简洁递归 前序遍历 中序,后序遍历仅仅是改变visit函数的append顺序,不贴代码。 非递归思路……
二叉搜索树中第K小的元素
解题思路: 中序遍历二叉查找树可以得到从小到大的序列。 中序遍历,得到第K个数就是答案。
滑动窗口算法匹配字符子串
最小覆盖子串 给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串 。
二分查找
[搜索插入位置](https://leetcode-cn.com/problems/search-insert-position/)
二叉树的层次遍历
思路:1. 根节点入队列 2. 遍历队列,把节点的值加入结果List,同时把栈的节点的左右孩子都添加到下一个队列。3. 重复步骤2,直到队列为空,
使用正则实现验证回文
验证回文 思路来源题目的评论区 1. \w 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]'。 2. 把\w以外的字符清除掉。并把所有字符转为小写。 3. 反转字符串,对比是否一致
两个链表的第一个公共节点
两个链表的第一个公共节点 思路: 两个链表一起遍历,得到两个链表的长度。 计算链表的长度差N。 长的链表先走N步。 两个链表一起走,判断是否有交点。
3分钟了解拓扑排序
有向无环图(DAG):指的是一个无回路的有向图。 顶点活动网(Activity On Vertex network),简称AOV网。 一个大型工程一般会划分若干个子工程,为了形象地反映出整个工程中各个子工程(活动)之间的先后关系,可以用一个有向图来表示。图的顶点代表子工程(活动…
摩尔多数投票算法解决寻找众数问题
Boyer-Moore majority vote algorithm (摩尔投票算法)是一种在线性时间O(n)和空间复杂度的情况下,在一个元素序列中查找包含最多的元素。它是以Robert S.Boyer和J Strother Moore命名的,1981年发明的,是一种典型的流…
DFS/BFS-节点间通路
给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。 DFS深度搜索,不过如果从start开始深度搜索,最后一个测试用例数据量大,因为超时而无法通过。 改变一下思路,从target开始深度搜索找start。 通过后,我写的DFS速度才50%,看了一下速度90%的代码。
模拟出栈验证栈序列
给定 pushed 和 popped 两个序列,每个序列中的值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 模拟一遍出栈,用变量j表示成功模拟出栈的个数。 先把pushed的一个元素进栈…
删除链表的倒数第N个节点
然后出栈N+1个,把N+1个的next指向第N-1个。 快指针先走N步,然后快指针和慢指针一步一步地走。 当快指针走到结尾的时候,慢指针指向的地方就是该删除的节点。 这里多用一个pre指针,记录慢指针前一个节点,方便删除操作。
【快慢指针】移动数组的零
当快指针指向的数字不为0的时候,把该数值赋值给慢指针指向的下标,然后慢指针+1。 当快指针走完的时候,慢指针指向的下标开始,直到列表末尾,全部赋值0。