力扣204周周赛题解下

  • 题目
  • 思路与算法
  • 代码实现
  • 写在最后

题目

3.1568. 使陆地分离的最少天数

思路与算法

  1. 本周周赛第三题勉强可以看看,第四题超出我目前的水平,跳过。第三题是一个典型的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周周赛题解下相关推荐

  1. 20200910:力扣204周周赛题解上(Java/Python/Cpp)

    力扣204周周赛题解上 题目 思路与算法 代码实现 写在最后 题目 1.1566. 重复至少 K 次且长度为 M 的模式 2.1567. 乘积为正数的最长子数组长度 思路与算法 热身题不要求算法技巧, ...

  2. 20200729:力扣199周周赛题解(下)

    力扣199周周赛题解(下) 题目三:好叶子节点对的数量 给你二叉树的根节点 root 和一个整数 distance . 如果二叉树中两个叶节点之间的 最短路径长度 小于或者等于 distance ,那 ...

  3. 20201219:力扣219周周赛题解

    力扣219周周赛题解 题目 思路与算法 代码实现 复杂度分析 题目 比赛中的配对次数 十-二进制数的最少数目 石子游戏 VII 堆叠长方体的最大高度 思路与算法 比赛中的配对次数 两两比赛,淘汰剩一支 ...

  4. 20201008:力扣209周周赛题解(下)

    力扣209周周赛题解(下) 题目 思路与算法 代码实现 写在最后 题目 可见点的最大数目 使整数变为 0 的最少操作次数 思路与算法 第一题注意添加角度时atan2的范围是正负π,因此注意差值可能超出 ...

  5. 20201007:力扣209周周赛题解记录(上)

    力扣209周周赛题解记录(上) 题目 思路与算法 代码实现 复杂度分析 题目 特殊数组的特征值 奇偶树 思路与算法 第一题单纯的暴力就行,应该是可以用二分之类的改善复杂度,没必要赘述,直接上暴力遍历, ...

  6. 20200907:力扣203周周赛题解记录

    力扣203周周赛题解 题目一: 1.圆形赛道上经过次数最多的扇区 示例 解题思路与代码实现 本题的思路为优化整个起点与终点,理清关系,起点到终点的过程中,分为起点小于终点,起点大于终点,起点等于终点, ...

  7. 20200819:力扣202周周赛题解记录

    力扣202周周赛题解记录 题目一:[存在连续三个奇数的数组](https://leetcode-cn.com/problems/three-consecutive-odds/) 代码实现 题目二:[使 ...

  8. 20200815:力扣201周周赛题解记录下

    力扣201周周赛题解记录下 题目 思路与算法 代码实现 题目 和为目标值的最大数目不重叠非空子数组数目 1547. 切棍子的最小成本 在这里插入图片描述 思路与算法 第3题还是一个简单的模拟,用set ...

  9. 20200814:力扣201周周赛题解记录上

    力扣201周周赛题解记录上 题目 思路与算法 代码实现 写在最后 题目 整理字符串 找出第 N 个二进制字符串中的第 K 位 思路与算法 第一题这种类似消消乐的东西都是直接用栈来实现的,注意代码细节 ...

最新文章

  1. Android View体系(三)属性动画
  2. 即将举行的网络研讨会:调试生产中Java的5种最佳实践
  3. HTML5中的webSocket、ajax、http
  4. 爬虫文档学习 xpath bs4 selenium scrapy...
  5. python3两个三阶矩阵相乘公式_Numpy 两个矩阵部分维度相乘,有没有很快的方法?...
  6. python从入门到实践答案第六章-《Python从入门到实践》第六章动手试一试
  7. RVC使用指南(四)-集群状况
  8. spark sql建表的异常
  9. java中if的嵌套循环_嵌套的多个“Next变量”if then循环
  10. ol3 Demo1 ----加载geoserver发布的地图数据
  11. 记录一次项目中代码大致优化方向
  12. 【Vue: 使用pdf.js顯示PDF Viewer】
  13. 史上最全面“完美商业计划书”攻略和技巧(附PPT模板)
  14. 5G核心网技术基础自学系列 | 用户面处理
  15. hadoop入门6:hadoop查询两两之间有共同好友,及他俩的共同好友都是谁
  16. 「今日 GitHub 趋势」让全世界程序员体会中国的 12306 抢票狂潮
  17. Python 编程第一讲:IDE推荐
  18. QT OpenGL图形放大缩小旋转移动
  19. 妥妥的去面试之数据结构与算法(一)
  20. Kubernetes 网络入门

热门文章

  1. 3 天开发物联网应用!腾讯云 IoT 超级小程序来了
  2. 我当测试总监的那几年
  3. Azure Data Studio:Postgres 专用的超强开源 GUI 编辑器了解一下?
  4. 一封遗失信件成就的科技亿万富翁
  5. @程序员,你真的会用 Unix 命令?
  6. 程序员除了编代码,还能做哪些职业规划?
  7. 用c语言定义一个分式方程,计算机C语言实验报告(00001)
  8. 第 3 章 UML 类图
  9. Zookeeper的Leader选举-选举过程介绍比较清晰
  10. aix ssh服务??