基本思想 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。...
什么是递归树 递归的思想就是,将大问题分解为小问题来求解,然后再将小问题分解为小小问题。这样一层一层地分解,直到问题的数据规模被分解得足够小,不...
优先队列 合并多个有序的文件成一个大文件假设我们有100个小文件,每个文件的大小是100MB,每个文件中存储的都是有序的字符串。我们希望将这些1...
满足条件 需要是完全二叉树。除了最后一层,其他层是满的,最后一层都靠左排列。 每个节点的值必须大于等于(小于等于)其子树的每个节点的值 如何存储...
满足递归实现的条件 一个问题的解可以分解为几个子问题的解 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样 存在递归终止条件 递归...
queue 特点 先如后出 支持enqueue() dequeue() queue 如何实现 高级的queue 循环队列 阻塞队列 并发队列 q...
stack 特点 先进后出 支持push pop peek操作 stack 如何实现 stack 典型用例 浏览器的前进后退 表达式求值(34+...
slice 数据结构 golang 源码 基于数组或者slice生成一个slice的时候,新的slice和原来数组/slice 的底层数组是同一...
主要用于多个goroutine间传递数据.一个通道相当于一个先进先出(FIFO)的队列 非缓冲通道make的时候第二个参数为0或者不填.无论是发...