![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
视频笔记
傻梨吃渣梨
这个作者很懒,什么都没留下…
展开
-
左神算法笔记: 5. 二叉树的基本算法
::二叉树不能形成环::先序、中序、后序遍历先序:对任意一个子树的处理顺序,都是先头结点、再左子树、再右子树中序:左头右后序:左右头[image:710374ED-4483-43C6-8740-52B0AB1597BA-22873-00006BA364335C85/iShot2020-12-18 20.40.44.png]非递归方式实现二叉树的先序、中序、后序任何递归函数都可以改成非递归自己设计压栈的来实现先序实现逻辑:放入head循环(如果栈不为空)出栈为head打印h原创 2020-12-19 11:01:43 · 253 阅读 · 1 评论 -
左神算法笔记: 4. 链表常见面试题
链表面试题常用的数据结构和技巧使用容器(哈希表、数组等)快慢指针eg1. 找到一个链表的中间节点eg2. 回文结构笔试:全放到栈里,一个个弹出,从首节点开始比较面试:链表的方法需要注意边界eg3. 将单向链表按某值划分成左边小、中间相等、右边大的形式笔试:把链表放入数组里,在数组上做partition面试:分成大、中、小三部分,再把各个部分之间串起来eg4. 一种特殊的单链表节点的描述如下class Node { int value; Node原创 2020-12-13 17:20:27 · 87 阅读 · 0 评论 -
左神算法笔记: 3. 比较器与堆
algorithem/左神算法/基础完全二叉树一种想象的数据结构实际是组数:使用0节点左子节点:2i + 1右子节点:2i + 2父节点:( i - 1 ) / 2不使用0节点左子节点:2i右子节点:2i + 1父节点:i / 2堆排序 ::堆排序的额外空间复杂度为O(1)::先让整个数组都变成大根堆结构,建立堆的过程:从上到下的方法(生成heap),时间复杂度为O(N*logN)把堆的最大值(root)和堆末尾的值交换,然后减少堆的大小,做一原创 2020-12-11 02:16:54 · 250 阅读 · 0 评论 -
左神算法笔记: 2. 线段树(区间修改数)
algorithem/左神算法/基础更快速的、区间的更改、查询一些东西eg. 实现一种数据结构使得以下三种计算的时间复杂度为O(logN )void add(arr, L, R, V); :将arr数组中的第L到R的数都增加Vvoid update(arr, L, R, V);:将arr数组中的第L到R的数都修改Vint getSum(arr, L, R);:将arr数组中的第L到R的数相加需要多少空间:最好情况:恰好是N = 2^n个数字,例如8,需要2N-1个空间 < 2N的空间原创 2020-12-11 02:13:13 · 346 阅读 · 0 评论 -
左神算法笔记: 1. 认识复杂度、对数器、二分法与异或运算
#algorithem/左神算法/基础 #sorting #XOR评估算法优劣的核心标准时间复杂度(流程决定)额外空间复杂度(流程决定)常数项时间(实现细节决定)常数时间的操作算数运算-加减乘除位运算( >>[带符号右移]/ >>>[不带符号右移]/ <</ |/ &/ ^)赋值、比较、自增、子减数组寻址三种排序选择排序:遍历整个数组找最大,放在最后冒泡排序:相邻的两个数比较谁大谁放在后面插入排序:第k次循环的时候原创 2020-12-11 02:11:58 · 331 阅读 · 0 评论