(补)20200911:力扣204周周赛题解下
力扣204周周赛题解下
- 题目
- 思路与算法
- 代码实现
- 写在最后
题目
3.1568. 使陆地分离的最少天数
思路与算法
- 本周周赛第三题勉强可以看看,第四题超出我目前的水平,跳过。第三题是一个典型的dfs或者bfs的题目,连通岛屿或分割岛屿的同类型题目,注意到答案只能是0,1,2就基本结束了。注意书写。见代码
代码实现
class Solution {int m, n;boolean[][] used;// 表示上下左右private static final int[][] directions = { { 0, 1 }, { 0, -1 }, { -1, 0 }, { 1, 0 } };public int minDays(int[][] grid) {m = grid.length;n = grid[0].length;used = new boolean[m][n];if (numOfLand(grid)) {return 0;} else {// 枚举 去掉其中一个1看能不能满足for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (grid[i][j] == 1) {grid[i][j] = 0;if (numOfLand(grid)) {return 1;}grid[i][j] = 1;}}}return 2;}}public boolean numOfLand(int[][] grid) {// 计算是否有多个连通块,或者0个连通块int count = 0;used = new boolean[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (!used[i][j] && grid[i][j] == 1) {count++;dfs(grid, i, j);}}}return count > 1 || count == 0;}public void dfs(int[][] grid, int i, int j) {used[i][j] = true;for (int k = 0; k < 4; k++) {int x = i + directions[k][0];int y = j + directions[k][1];if (inside(x, y) && !used[x][y] && grid[i][j] == 1) {dfs(grid, x, y);}}}public boolean inside(int x, int y) {return x >= 0 && x < m && y >= 0 && y < n;}
}
写在最后
冲!
(补)20200911:力扣204周周赛题解下相关推荐
- 20200910:力扣204周周赛题解上(Java/Python/Cpp)
力扣204周周赛题解上 题目 思路与算法 代码实现 写在最后 题目 1.1566. 重复至少 K 次且长度为 M 的模式 2.1567. 乘积为正数的最长子数组长度 思路与算法 热身题不要求算法技巧, ...
- 20200729:力扣199周周赛题解(下)
力扣199周周赛题解(下) 题目三:好叶子节点对的数量 给你二叉树的根节点 root 和一个整数 distance . 如果二叉树中两个叶节点之间的 最短路径长度 小于或者等于 distance ,那 ...
- 20201219:力扣219周周赛题解
力扣219周周赛题解 题目 思路与算法 代码实现 复杂度分析 题目 比赛中的配对次数 十-二进制数的最少数目 石子游戏 VII 堆叠长方体的最大高度 思路与算法 比赛中的配对次数 两两比赛,淘汰剩一支 ...
- 20201008:力扣209周周赛题解(下)
力扣209周周赛题解(下) 题目 思路与算法 代码实现 写在最后 题目 可见点的最大数目 使整数变为 0 的最少操作次数 思路与算法 第一题注意添加角度时atan2的范围是正负π,因此注意差值可能超出 ...
- 20201007:力扣209周周赛题解记录(上)
力扣209周周赛题解记录(上) 题目 思路与算法 代码实现 复杂度分析 题目 特殊数组的特征值 奇偶树 思路与算法 第一题单纯的暴力就行,应该是可以用二分之类的改善复杂度,没必要赘述,直接上暴力遍历, ...
- 20200907:力扣203周周赛题解记录
力扣203周周赛题解 题目一: 1.圆形赛道上经过次数最多的扇区 示例 解题思路与代码实现 本题的思路为优化整个起点与终点,理清关系,起点到终点的过程中,分为起点小于终点,起点大于终点,起点等于终点, ...
- 20200819:力扣202周周赛题解记录
力扣202周周赛题解记录 题目一:[存在连续三个奇数的数组](https://leetcode-cn.com/problems/three-consecutive-odds/) 代码实现 题目二:[使 ...
- 20200815:力扣201周周赛题解记录下
力扣201周周赛题解记录下 题目 思路与算法 代码实现 题目 和为目标值的最大数目不重叠非空子数组数目 1547. 切棍子的最小成本 在这里插入图片描述 思路与算法 第3题还是一个简单的模拟,用set ...
- 20200814:力扣201周周赛题解记录上
力扣201周周赛题解记录上 题目 思路与算法 代码实现 写在最后 题目 整理字符串 找出第 N 个二进制字符串中的第 K 位 思路与算法 第一题这种类似消消乐的东西都是直接用栈来实现的,注意代码细节 ...
最新文章
- Android View体系(三)属性动画
- 即将举行的网络研讨会:调试生产中Java的5种最佳实践
- HTML5中的webSocket、ajax、http
- 爬虫文档学习 xpath bs4 selenium scrapy...
- python3两个三阶矩阵相乘公式_Numpy 两个矩阵部分维度相乘,有没有很快的方法?...
- python从入门到实践答案第六章-《Python从入门到实践》第六章动手试一试
- RVC使用指南(四)-集群状况
- spark sql建表的异常
- java中if的嵌套循环_嵌套的多个“Next变量”if then循环
- ol3 Demo1 ----加载geoserver发布的地图数据
- 记录一次项目中代码大致优化方向
- 【Vue: 使用pdf.js顯示PDF Viewer】
- 史上最全面“完美商业计划书”攻略和技巧(附PPT模板)
- 5G核心网技术基础自学系列 | 用户面处理
- hadoop入门6:hadoop查询两两之间有共同好友,及他俩的共同好友都是谁
- 「今日 GitHub 趋势」让全世界程序员体会中国的 12306 抢票狂潮
- Python 编程第一讲:IDE推荐
- QT OpenGL图形放大缩小旋转移动
- 妥妥的去面试之数据结构与算法(一)
- Kubernetes 网络入门