10 2020 档案
摘要:本题利用dfs将一整座岛屿找出来,所以我们每在首函数里调用一次dfs函数,就是一座新岛屿,岛屿数量加1 在dfs函数里运用“感染”一词来寻找相连的区域 1 class Solution { 2 public: 3 int ans=0; 4 int numIslands(vector<vector<c
阅读全文
摘要:本题计算最大的岛屿面积,我们用dfs来深搜每个岛,并在每次dfs之前定义s来计算每个岛的面积,并同时更新最大值,我们将地图二维数组和每个点的x、y和s传入dfs函数,在第一个函数里的每一次dfs,就是一座新的岛屿 在dfs中我们进行点的不合法判断且回溯,并修改遍历过的1改为0,然后将此岛屿面积s++
阅读全文
摘要:dfs是最广泛的搜索算法,通俗讲就是:一条路走到黑,通过暴力枚举,将所有可能的情况一一枚举,不断地试探来找到解 对每一个可能的分支路径深入到不能再深入,而且每个顶点只访问一次。 dfs一般借助递归来实现: 1 void dfs(int deep){ 2 if(到达边界){ 3 //做一些处理后返回
阅读全文
摘要:当数据量很大时,我们不能一个一个去判断每个数是否为素数,那么我们可以采用欧拉筛来做 由于埃氏筛会存在某个合数多次被筛的情况,所以 欧拉筛的核心思想就是:让每个合数只被它的的最小质因子筛选一次,没有重复 欧拉筛:时间复杂度为O(n),所以也称为线性筛,但只能筛到1e8这么大 1 const int m
阅读全文
摘要:由BFS得到的层序结果是一个一位数组,而我们要得到二维数组,则需要: 在每一层遍历开始前,先记录队列中的 结点数量 n(也就是这一层的结点数量),然后一口气处理完这一层的 n 个结点。 在while循环的每一轮,都是将当前层的结点全部出队,再将下一层的所有结点入队,就实现了层次遍历 1 /** 2
阅读全文
摘要:力扣公司的员工都使用员工卡来开办公室的门。每当一个员工使用一次他的员工卡,安保系统会记录下员工的名字和使用时间。如果一个员工在一小时时间内使用员工卡的次数大于等于三次,这个系统会自动发布一个 警告 。 给你字符串数组 keyName 和 keyTime ,其中 [keyName[i], keyTim
阅读全文

浙公网安备 33010602011771号