chapter11-search-algorithm
[TOC]
搜索类算法
BFS
1. 计算在网格中从原点到特定点的最短路径长度
1 | import pprint |
2. 组成整数的最小平方数数量
1 | def numSquares( self, n: int ) -> int: |
3. 最短单词路径
1 | def ladderLength( beginWord: str, endWord: str, wordList:[]) -> int: |
DFS
1. 查找最大的连通面积
1 | def maxAreaOfIsland( grid ) -> int: |
2. 矩阵中的连通分量数目
1 | def numIslands( grid) -> int: |
3. 好友关系的连通分量数目
1 | def findCircleNum(M) -> int: |
4. 填充封闭区域
1 | def solve( board) -> None: |
5. 能到达的太平洋和大西洋的区域
1 | def pacificAtlantic(matrix): |
Backtracking
1. 数字键盘组合
1 | def letterCombinations(digits: str): |
2. IP 地址划分
1 | def restoreIpAddresses(s: str): |
3. 在矩阵中寻找字符串
1 | def exist( board,word: str): |
4. 输出二叉树中所有从根到叶子的路径
1 | class TreeNode: |
5. 排列
1 | def permute(nums): |
6. 含有相同元素求排列
1 | def permuteUnique(nums): |
7. 组合
1 | def combine(n, k): |
8. 组合求和
1 | def combinationSum(candidates, target): |
9. 含有相同元素的组合求和
1 | def combinationSum2(candidates, target): |
10. 1-9 数字的组合求和
1 | def combinationSum3(k, n): |
11. 子集
1 | def subsets(nums): |
12. 含有相同元素求子集
1 | def subsetsWithDup(nums): |
13. 分割字符串使得每个部分都是回文数
1 | def partition(s): |
14. 数独
1 | def solveSudoku(board): |
15. N 皇后
1 | def solveNQueens(n): |
0.0最常见的单词
1 | def mostCommonWord( self, paragraph: str, banned ) -> str: |
0^0计数质数
1 | def countPrimes(self, n: int) -> int: |