leetcode:17Letter Combinations of a Phone Number
- DFS:递归+回溯,深度优先,一直向深处走
- BFS:队列实现,一层一层,先走遍所有相邻节点
- 建立实现最大堆的方法(可递归):首先考虑最简单的,一个父节点和他的两个子节点,比较出最大的, 如果需要交换(父节点不是最大的)那么就需要递归的调用建立最大堆(因为交换后那个子节点可能不再是他与他的子节点中的最大的)
- 对每个有子节点的父节点调用建立最大堆,从arry.length/2的节点开始,i-- 递减 3. 每次建立完一次最大堆,都把第一个与最后一个交换(把最大的移到最后一个,最小的在第一个)然后arry的length减一,继续建立最大堆