【道德经·第十五章】豫兮其若冬涉川,犹兮其若畏四邻,俨兮其若容,涣兮若冰之将释,敦兮其若朴,旷兮其若谷,混兮其若浊。孰能浊以静之徐清?孰能安以久动之徐生?
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) { |
位我上者,灿烂星空;道德律令,在我心中。