首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法和数据结构
monday
创建于2021-11-25
订阅专栏
记录算法和数据结构的学习过程
等 2 人订阅
共32篇文章
创建于2021-11-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
动态规划(3)——LeetCode贴纸拼词、最长公共子序列
一、贴纸拼词 LeetCode691: https://leetcode-cn.com/problems/stickers-to-spell-word ……
动态规划(2)——背包问题、数字转字母问题
我们从递归聊到动态规划,很显然,动态规划还没结束,今天继续来聊从暴力递归到动态规划的套路。 一、背包问题 1、题目描述 有n种物品,w数组表示物品重量、v数组表示物品的价值……
动态规划
前一篇我们仔细聊了聊递归,如果大伙都仔细敲了相关代码,没有收获那是不可能的。同时敏锐的伙伴可能也发现了,接下来我们要说啥了——动态规划,对,终于终于我们聊到动态规划了……
从 最具启发性的汉诺塔问题开始 聊递归
本文篇幅较长,建议仔细耐心看完,相信会有极大的收获。 一、最具启发性的汉诺塔问题 1、汉诺塔问题描述 有三根杆子A,B,C。A杆上有 N 个 (N>1) 穿孔圆盘……
图的关键算法
一、概念 图(Graph)是用于表示物体与物体之间存在某种关系的结构。数学抽象后的“物体”称作节点或顶点(Vertex,node或point),节点间的相关关系则称作边……
并查集练习——LeetCode200 岛屿数量
岛屿数量:1、题目描述 LeetCode200,给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和竖直方向上……
并查集
一、啥是并查集 1、解释 看下维基百科的解释 啥?在说啥,看不懂?那说人话吧 通俗的说,并查集是一种数据结构,指在一些有N个元素的集合应用问题中……
贪心算法(2):金条切割问题、点灯问题、IPO问题
今天再讲一篇关于利用贪心算法解决的题目。 一、金条切割问题 1、题目描述 一块金条切成两半,是需要花费和长度数值一样的铜板的。比如长度为20的金条,不管怎么切,都要花费20个铜板……
贪心算法
今天来聊聊贪心算法。 一、什么是贪心算法 1、最具自然智慧的算法 用最普通的思维就能想到的解决方法。 2、用一种局部最功利的标准,总是做出在当前看来是最好的选择 ……
二叉树递归套路(4):最低公共祖先、派对的最大快乐值
今天继续二叉树的递归套路。 一、最低公共祖先 给定一个二叉树的头节点,和另外两个节点a、b,返回a、b的最低公共祖先。 最低公共祖先定义:a、b往上找,第一个相同的祖先……
二叉树递归套路(3):判断是否是满二叉树、最大子搜索二叉树的节点数
二叉树递归套路第三篇:判断二叉树是否是满二叉树、求二叉树最大子搜索二叉树的节点数,二叉树递归套路总结……
二叉树递归套路(2):判断二叉树是否是搜索二叉树、二叉树的最大距离
二叉树递归套路第二篇,用二叉树递归套路解决二叉树是否是搜索二叉树、二叉树的最大距离问题,同时学会新的技巧……
二叉树递归套路:判断二叉树是否是完全二叉树、判断二叉树是否是平衡二叉树
判断二叉树是否是完全二叉树、判断二叉树是否是平衡二叉树使用常规的解法大家都会,但是你知道如何用递归套路来解吗?二叉树递归套路可以解决绝大多数的二叉树问题,尤其是树型dp问题,相信看完有不一样的收获……
查询后继节点、纸条折痕问题
一、查询后继节点(含有父节点的二叉树),时间复杂度可以做到O(K),按照后继节点定义求解的时间复杂度是O(N);二、纸条折痕问题……
求二叉树最宽的层有多少个节点
思路: 在按层遍历的基础上进行改写,准备currentLevelEnd、nextLevelEnd、currentWeight、maxWeight四个变量……
二叉树的序列化和反序列化
序列化的定义,先序方式序列化和反序列化,后序方式序列化和反序列化,按层方式序列化和反序列化,没有中序方式的序列化和反序列化
二叉树基本算法
二叉树的定义,二叉树的先序、中序、后序的递归遍历(以及递归序),先序、中序、后序的非递归遍历,二叉树的层序遍历
有环或无环单链表的相交问题
关于求有环无环单链表相交的问题,是链表类型题目中数一数二的难题。分两大步,1、找到入环节点;2、根据入环节点分为:两个链表无环、一个有环一个无环(不可能相交)、两个有环。此时就迎刃而解了。
复制带随机指针的链表
复制带随机指针的链表,提供两种解决方法,额外空间复杂度分别为O(1)和O(N),O(N)的采用Map来辅助。
将单向链表划分成左边小、中间等、右边大的形式
将单向链表划分成左边小、中间等、右边大的形式,采用两种解法。1、荷兰国旗解决,额外空间复杂度O(N);2、使用6个有限变量解决,额外空间复杂度为O(1)
下一页