Skip to content

Latest commit

 

History

History
87 lines (63 loc) · 2.83 KB

NOTE.md

File metadata and controls

87 lines (63 loc) · 2.83 KB

解题思路 1.先浏览一遍题目,沟通确认好细节 2.思考用不同的方法解决,看高票题解 3.自己默写一遍题解 4.五遍刷题法 5.背诵并默写模板

要点

数组

链表

存储数据结构的存储空间可以不连续,各数据节点的顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系由指针域来确定 跳表

用于元素有序的情况 升维思想+空间换时间 栈

先入后出 队列

先入先出 双端队列

两端可以进出的队列 优先队列

按照元素的优先级取出:O(logn) 底层具体实现的数据结构较为多样和复杂:heap、bst 、treap 哈希表 也叫散列表,根据关键码值而直接进行访问的数据结构 映射函数将任意长度的输入通过散裂算法之后映射成固定长度的输出。

二叉树遍历

前序:根-左-右 中序:左-根-右 后序:左-右-根 二叉搜索树

1、左子树上所有节点的值均小于它的根节点的值 2、右子树上所有节点的值均大于它的根节点的值 3、以此类推:左、右子树也分别为二叉查找树 中序排列:升序排列 递归

循环,通过函数体进行的循环 堆

可以迅速找到一维树中的最大或者最小值的数据结构 二叉堆

1、是一棵完全树 2、树中任意节点的值总是>=其子节点的值(大顶);树中任意节点的值总是<=其子节点的值(小顶) 3、二叉堆一般都通过“数组”实现 4、父节点和子节点的位置关系: 索引为i的左孩子的索引是(2i+1) 索引为i的右孩子的索引是(2i+2) 索引为i的父节点的索引是floor((i-1)/2) 5、插入操作O(logN): 新元素插入到堆的尾部 依次向上调整整个堆的结构(一直到根即可) 6、删除堆顶操作(O(logN)) 堆尾元素替换到顶部(堆顶被删除) 依次从根部向下调整整个堆的结构(一直到堆尾即可) 图

点: 度-入度和出度 点与点之间:联通与否

边: 有向和无向(单行线) 权重 分治

分解,将要解决的问题划分成若干规模较小的同类问题 求解,当子问题划分得足够小时,用较简单的方法解决 合并,按原问题的要求,将子问题的解逐层合并构成原文题的解 回溯

采用试错的思想,尝试分布地解决一个问题。在分布解决问题的过程中,当它通过尝试发现现有的分布答案不能得到有效的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它可能的分步解答再次尝试寻找问题的答案。在最坏的情况下,会导致一次复杂度为指数时间的计算。 深度优先搜索 && 广度优先搜索

搜索:每个节点都要访问有且仅有一次