【道德经·第十五章】豫兮其若冬涉川,犹兮其若畏四邻,俨兮其若容,涣兮若冰之将释,敦兮其若朴,旷兮其若谷,混兮其若浊。孰能浊以静之徐清?孰能安以久动之徐生?
200. 岛屿数量
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。
1  | int numIslands(vector<vector<char>>& grid) {  | 
463. 岛屿周长
计算岛屿的周长。
1  | int islandPerimeter(vector<vector<int>>& grid) {  | 
695. 岛屿的最大面积
计算并返回 grid 中最大的岛屿面积。
1  | int maxAreaOfIsland(vector<vector<int>>& grid) {  | 
785. 判断二分图
如果图是二分图,返回 true ;否则,返回 false 。
1  | bool isBipartite(vector<vector<int>>& graph) {  | 
431. 找无向图的连通块
找出无向图中所有的连通块。
1、DFS解法
1  | unordered_set<UndirectedGraphNode*> vis;  | 
2、BFS解法
1  | unordered_set<UndirectedGraphNode*> vis;  | 
22. 括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。
示例 1:
1  | 输入:n = 3  | 
示例 2:
1  | 输入:n = 1  | 
提示:
- 1 <= n <= 8
 
实现代码(DFS):
1  | vector<string> generateParenthesis(int n) {  | 
329. 矩阵中的最长递增路径
给定一个mxn整数矩阵matrix ,找出其中最长递增路径的长度。
示例 1:
1  | 输入:matrix = [[9,9,4],[6,6,8],[2,1,1]]  | 
示例 2:
1  | 输入:matrix = [[3,4,5],[3,2,6],[2,2,1]]  | 
代码:
1  | int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};  | 
不同路径的数目(一)
一个机器人在m×n大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?
示例1
1  | 输入:2,1  | 
示例2
1  | 输入:2,2  | 
动态规划解法
1  | int uniquePaths(int m, int n) {  | 
dfs+备忘录
1  | int dfs(int m, int n, vector<vector<int> >& memo, int x, int y) {  | 
位我上者,灿烂星空;道德律令,在我心中。