图
超喜欢榴莲吖
许愿未来温暖阳光,满身宠爱
展开
-
529. 扫雷游戏
乍一看有点复杂,其实就完全按照每个规则实现就行。class Solution {private: int dx[8]={0,0,1,-1,1,1,-1,-1}; int dy[8]={1,-1,0,0,1,-1,1,-1}; int n,m;public: vector<vector<char>> updateBoard(vector<vector<char>>& board, vector<int>..原创 2020-08-20 23:16:20 · 88 阅读 · 0 评论 -
133. 克隆图
深拷贝:对于一张图而言,它的深拷贝即构建一张与原图结构,值均一样的图,但是其中的节点不再是原来图节点的引用。因此,为了深拷贝出整张图,我们需要知道整张图的结构以及对应节点的值。由于题目只给了我们一个节点的引用,因此为了知道整张图的结构以及对应节点的值,我们需要从给定的节点出发,进行「图的遍历」,并在遍历的过程中完成图的深拷贝。/*// Definition for a Node.class Node { public int val; public List<Node>.原创 2020-08-12 08:27:37 · 98 阅读 · 0 评论 -
130. 被围绕的区域
题目这道题思路非常妙,采用了由边界向里面扩展的方法。题目要求是将非边界的0填充为x,与边界0直接或者间接相连的0不需要填充,如果直接判断0是否被包围是难以判断的,但是将所有边界0对应的0连通区域找出来是简单的,因此,可以从边界0出发,DFS判断每个连通区域,对其中的0进行标记,那么标记过的0就是不需要改为x的0。之后将未标记过的0改为x即可。class Solution {private: int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1};原创 2020-08-11 08:35:04 · 82 阅读 · 0 评论 -
329. 矩阵中的最长递增路径
题目参考思路:将矩阵看成一个有向图,每个单元格对应图中的一个节点,如果相邻的两个单元格的值不相等,则在相邻的两个单元格之间存在一条从较小值指向较大值的有向边。问题转化成在有向图中寻找最长路径。class Solution {public: static constexpr int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; int rows, columns; int longestIncreasingPath(vec原创 2020-07-26 12:23:25 · 99 阅读 · 0 评论 -
Leetcode--拓扑排序
207. 课程表题目拓扑排序典型题。采用逐步删除入度为0点的方法。class Solution {public: bool canFinish(int numCourses, vector<vector<int>>& prerequisites) { vector<vector<int>> d(numCourses); int n=prerequisites.size(); vector原创 2020-07-26 11:52:54 · 307 阅读 · 0 评论 -
二分图
二分图定义:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。简而言之,就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。785. 判断二分图题目对于图中的任意两个节点 u 和 v,如果它们之间有一条边直接相连,那么 u 和 v原创 2020-07-16 12:12:56 · 115 阅读 · 0 评论