首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法和数据结构——体系
爱敲代码的Harrison
创建于2022-01-21
订阅专栏
算法和数据结构——基础的补充和提升!
等 2 人订阅
共25篇文章
创建于2022-01-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
二叉树按层遍历并收集结点
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情 二叉树按层遍历并收集结点 力扣链接:二叉树的按层遍历II 题目 给你二叉树的根节点 root ,返回其节
暴力递归——打印一个字符串的全部子序列
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第16天,点击查看活动详情。 打印一个字符串的全部子序列 我们先来看看字符串的子串和子序列有什么区别? 字符串的子串:必须是连续的一段
状态压缩的动态规划——TSP问题
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第15天,点击查看活动详情。 题目 TSP问题,潜台词:任何一个城市出发都一样,其实是个无向图,但是无向图可以理解为互相有方向的有向图
二叉树的递归套路——派对的最大快乐值
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第10天,点击查看活动详情。 派对的最大快乐值 员工信息的定义如下: 公司的每个员工都符合Employee类的描述。整个公司的人员结构
卡特兰数及其应用
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第9天,点击查看活动详情。 前言 A和B是两个毫不相关的集合,但是集合的个数可数。只要能找到某一个映射 f ,让A集合里的一个样本x只
二叉树的递归套路——完全二叉树
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第8天,点击查看活动详情。 给定一棵二叉树的头节点head,返回这颗二叉树中是不是完全二叉树 什么是完全二叉树,一句话可以总结——这棵
有序表之SB树
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第5天,点击查看活动详情。 SB树的平衡标准 任何以叔叔结点的为头的子树的结点个数不小于任何一个以自己侄子为头结点的子树的结点个数。
有序表之AVL树
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情。 前言 数据库中最重要的基础是索引,索引为什么能被建立起来,因为能建立索引的字段都是可以排序的,(任何字符串
链表噩梦之一?5000多字带你弄清它的来龙去脉
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情。 题目:给定两个可能有环也可能无环的单链表,头节点head1和head2。请实现一个函数,如果两个链表相交,
最短路径算法——dijkstra
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。 dijkstra 前提:在一张图里,不能有权值为负数的边。 给你一个出发点,求出发点到所有结点的最短距离是
Morris遍历
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。 Morris遍历 一种遍历二叉树的方式,并且时间复杂度O(N),额外空间复杂度O(1)。通过利用原树中大量
KMP算法
KMP暴力方法为何暴力? 因为每个位置的尝试对后面位置的尝试都没有任何帮助,每个位置的尝试是独立的! 了解KMP之前,先认识一种信息:前缀与后缀串的最长匹配长度 K之前的字符串中,前缀跟后缀的最长相等
由斐波那契数列引述到矩阵快速幂技巧
求斐波那契数列矩阵乘法的方法 1)斐波那契数列的线性求解(O(N))的方式非常好理解 2)同时利用线性代数,也可以改写出另一种表示: 3)求出这个二阶矩阵,进而最快求出这个二阶矩阵的N-2次方 斐波那
并查集练习——岛屿数量
力扣原题链接:岛屿数量 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,
并查集练习——省份数量
力扣原题链接:省份数量 有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份 是一组直接或
将N叉树编码位二叉树
力扣原题链接——将N叉树编码位二叉树 题目 设计一个算法,可以将 N 叉树编码为二叉树,并能将该二叉树解码为原 N 叉树。 一个 N 叉树是指每个节点都有不超过 N 个孩子节点的有根树。 类似地,一个
非递归方式如何用一个栈实现二叉树的后续遍历
前言:递归方式遍历二叉树不难,理解递归序就很简单——递归方式实现二叉树的三种遍历。 非递归的方法就是不用系统栈,通过自己设计的压栈方式来实现——非递归方式实现二叉树的三种遍历。 其中先序和中序只需用一
排序总结,
排序总结 时间复杂度 额外空间复杂度 稳定性 选择排序 O(N^2) O(1) 无 冒泡排序 O(N^2) O(1) 有 插入排序 O(N^2) O(1) 有 归并排序 O(N*logN) O(N)
加强堆题目练习
手动改写堆题目练习 给定一个整型数组,int[]arr;和一个布尔类型数组,boolean[] op。 两个数组一定等长,假设长度为N, arr[i]表示客户编号, op[们]表示客户操作 arr=[
最大线段重合问题(用堆实现)
题目 给定很多线段,每个线段都有两个数[start, end],表示线段开始位置和结束位置,左右都是闭区间。 规定: 1)线段的开始和结束位置一定都是整数值 2)线段重合区域的长度必须>=1 返回线段
下一页