回溯
副本文件回溯17. 电话号码的字母组合
22. 括号生成
电话号码的字母组合17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:12输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。
12345678910111213141516171819202122232425262728293031public: map<char, string> M = { {'2',"abc"},{'3 ...
算法——查找算法
哈希、红黑树、B+树、二叉树、平衡算法
搜索算法
二分查找二分查找一定是有序的:target ? (left+right)/2
如果说二分查找转换成数据结构展示——>==二叉树—->二叉查找树、二叉搜索树==
二叉搜索树1. 时间复杂度:二分:log(n)
AVL树:平衡二叉树红黑树(特殊的二叉查找树)这篇文章还在编辑中······
本文结束!
BFS和DFS算法(基础)
深度优先搜索算法和广度优先搜索算法
数据结构——栈和队列
栈栈的定义与运算
栈是只允许在线性表的一段进行插入和删除的线性表。表中值允许插入和删除的一段称为栈顶命令一段称为栈底。
由于只能在栈顶进行插入和删除操作,使得后进栈的元素先出栈,先进栈的元素后出栈,所以栈是一种后进先出(Last In First Out,简称LIFO)的数据结构。有关栈的应用都是基于这一特性。
栈的操作通常称为入栈或进栈,其删除操作称为出栈或退栈。当栈中五元素是,称为空栈。
有关栈的基本操作主要有以下几种:
1. 栈的初始化操作,即建立一个空栈S
2. 判空栈操作,弱S为空栈,返回一个真值
3. 进栈操作,在S栈顶插入一个元素X
4. 出栈操作,若栈S不空,则取栈顶元素(栈顶元素不删除)。
栈的顺序存储结构(又称为顺序栈)类似于线性表的顺序存储结构。
队列双队列实现栈的操作:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546class MyStack { queue<int> queue1; qu ...