![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法基础
文章平均质量分 82
孤岛使者
新加坡国立大学计算机学院硕士
展开
-
算法基础之二叉树相关实战(下)(Leetcode题型归纳)
算法基础之二叉树相关实战(下)原创 2021-12-19 15:47:02 · 4168 阅读 · 0 评论 -
算法基础之二叉树相关实战(上)(Leetcode题型归纳)
算法基础之二叉树相关实战(Leetcode题型归纳)1.二叉树的性质相关题目1.1介绍1.2真题分析1.2.1相同的树(100)1.2.2对称二叉树(101)1.2.3平衡二叉树(110)1.2.4二叉树的最大深度(104)1.2.5二叉树的最小深度(111)1.2.6二叉树最大宽度(662)2.二叉树的遍历相关题目2.1介绍2.2真题分析(深度优先搜索)2.2.1二叉树的前序遍历(144)2.2.2二叉树的中序遍历(94)2.2.3二叉树的后序遍历(145)2.3真题分析(广度优先搜索)2.3.1二叉树的原创 2021-12-17 16:33:53 · 1022 阅读 · 0 评论 -
算法基础之二叉树理论
算法基础之二叉树理论1.树基础2.二叉树基础3.二叉树基本操作3.1插入节点3.2二叉树遍历1.树基础2.二叉树基础3.二叉树基本操作3.1插入节点3.2二叉树遍历原创 2021-10-24 16:09:31 · 247 阅读 · 0 评论 -
算法基础之递归算法及应用
算法基础之递归算法及应用1. 递归的基础定义2. 递归解题思路3. 递归的应用3.1递归求阶乘3.2青蛙跳台阶/爬梯子问题(剑指offer10-2/LC70)3.3斐波那契数列(509)3.4汉诺塔问题4. 链表与递归4.1删除链表中的元素(203)1. 递归的基础定义递归的本质是一种解决问题的思想:将规模大的问题转化为规模小的问题来解决。举个例子,假设游戏一共有10关,当每关的BOSS被打败时,会随机掉落金币。金币的数量 = 当前关数 * 一个1到100以内的随机数。如果使用循环遍历每关,依次加原创 2021-09-29 14:25:18 · 275 阅读 · 0 评论 -
算法基础之链表相关实战(Leetcode题型归纳)
算法基础之链表相关实战(Leetcode题型归纳)1.常用技巧2.链表基本操作类题目2.1介绍2.2真题分析2.2.1移除链表元素(203)2.2.2删除链表中的节点(237)2.2.3分隔链表(86)2.2.4两两交换链表中的节点(24)2.2.5旋转链表(61)2.2.6重排链表(143)3.反转类题目3.1介绍3.2真题分析3.2.1反转链表(206)3.2.2反转链表2(92)3.2.3 k个一组翻转链表(25)4.双指针问题4.1介绍4.2真题分析4.2.1删除链表的倒数第N个节点(19)4.2.原创 2021-09-26 16:45:33 · 108 阅读 · 0 评论 -
算法基础之链表理论
算法基础之链表理论1.链表基础定义2.链表增删改查2.1基本功能2.2链表添加元素2.3链表遍历、查询、更新2.4链表删除元素3.静态链表4.双向链表5.单向循环链表6.双向循环链表1.链表基础定义之前已经把两大数据结构之一的数组总结了,这次就来总结另一个——链表(Linked List)。首先动态数组、栈和队列的底层都是依托于静态数组的;靠resize来解决固定容量问题,这可能会造成内存空间的大量浪费(比如当数组满了后,会自动加倍容量,但如果没有继续添加元素,其实是有多一倍的容量浪费了);插入和删除原创 2021-09-24 12:33:17 · 175 阅读 · 0 评论 -
算法基础之队列的理论和应用
算法基础之队列的理论和应用1.队列的基础定义2.队列的实现3.数组队列的问题4.循环队列5.队列的应用5.1回文词检测5.2用栈实现队列(232)5.3生产窗口最大值数组(程序员面试指南)1.队列的基础定义官方定义:队列是只允许在一端进行插入操作,而另一端进行删除操作的线性表。解释:队列也是一种线性结构,相比数组,队列对应的操作是数组的子集,只能从一端(队尾)添加元素,只能从另一端(队首)取出元素。队列是一种先进先出(First in First out,FIFO)的数据结构。2.队列的实现原创 2021-09-11 16:20:38 · 465 阅读 · 0 评论 -
算法基础之栈的理论和应用
算法基础之栈的理论和应用1.栈的基础定义2.栈的实现3.栈的应用3.1有效的括号(20)3.2四则运算表达式求值3.3设计一个有getMin功能的栈(代码面试题)1.栈的基础定义官方定义:栈是限定仅在表尾进行插入和删除操作的线性表。解释:栈也是一种线性结构,相比数组,栈对应的操作是数组的子集,只能从一端添加元素,也只能一端取出元素。把允许删除和删除的一端称为栈顶(top),另一端称为栈底(bottom)栈是一种**后进先出(Last in First out, LIFO)**的数据结构。思考原创 2021-09-11 13:01:13 · 336 阅读 · 0 评论 -
算法基础之数组双指针(Leetcode题型归纳)
数组双指针(Leetcode题型归纳)1.前言2.双指针基础3.相向双指针3.1定义3.2真题分析3.2.1两数之和(1)3.2.2两数之和-输入有序数组(167)3.2.3三数之和(15)3.2.4最接近的三数之和(16)3.2.5四数之和(18)3.2.6盛最多水的容器(11)3.2.7有效三角形的个数(611)4.同向双指针-快慢指针4.1定义4.2真题分析4.1.1删除排序数组中的重复项(26)4.1.2移除元素(27)4.1.3删除排序数组中的重复项(80)4.1.4移动零(283)4.1.5数组原创 2021-09-09 18:37:25 · 638 阅读 · 1 评论 -
算法基础之数组理论
算法基础之数组理论前言数组基础定义数组增删改查添加元素查询和修改元素包含、搜索和删除元素动态数组及其时间复杂度Python列表与字典操作的时间复杂度欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导原创 2021-08-31 16:50:41 · 181 阅读 · 0 评论