当前位置: 首页 > wzjs >正文

网站怎么做png阴影开发小程序要多少钱

网站怎么做png阴影,开发小程序要多少钱,鲅鱼圈网站建设,手机怎么搭建属于自己的网站卡码网题目: 99. 岛屿数量100. 岛屿的最大面积 其他: 今日总结 往期打卡 99. 岛屿数量 跳转: 99. 岛屿数量 学习: 代码随想录公开讲解 问题: 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水…

卡码网题目:

  • 99. 岛屿数量
  • 100. 岛屿的最大面积

其他:

今日总结
往期打卡


99. 岛屿数量

跳转: 99. 岛屿数量

学习: 代码随想录公开讲解

问题:

给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。

思路:

Flood Fill求连通区域数量,可以使用bfs或dfs遍历地图,bfs需要及时标记,处理时再标记会重复添加.

复杂度:

  • 时间复杂度: O ( n m ) O(nm) O(nm)
  • 空间复杂度: O ( n m ) O(nm) O(nm)

代码:

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;class Main {private static int ans;private static int[][] DIRECTION = {{0, -1}, {1, 0}, {0, 1}, {-1, 0}};private static boolean[][] vis;private static void dfs(int[][] map, int x, int y) {vis[x][y] = true;for (int i = 0; i < 4; i++) {int n = x + DIRECTION[i][0];int m = y + DIRECTION[i][1];if (n < 0 || n >= map.length || m < 0 || m >= map[0].length || vis[n][m]) continue;if (map[n][m] == 1)dfs(map, n, m);}}private static void bfs(int[][] map,int x,int y){Deque<int[]> stack = new ArrayDeque<>();vis[x][y] = true;stack.add(new int[]{x,y});while(!stack.isEmpty()){int l = stack.size();for(int i=0;i<l;i++){int[] position = stack.pollLast();for(int j=0;j<4;j++){int n = position[0] + DIRECTION[j][0];int m = position[1] + DIRECTION[j][1];if (n < 0 || n >= map.length || m < 0 || m >= map[0].length || vis[n][m]) continue;if (map[n][m] == 1){vis[n][m] = true;stack.add(new int[]{n,m});}}}}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt();int M = sc.nextInt();int[][] map = new int[N][M];vis = new boolean[N][M];for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {map[i][j] = sc.nextInt();}}for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {if (map[i][j] == 0 || vis[i][j]) continue;ans++;bfs(map, i, j);}}System.out.println(ans);}
}

100. 岛屿的最大面积

跳转: 100. 岛屿的最大面积

学习: 代码随想录公开讲解

问题:

给定一个由 1(陆地)和 0(水)组成的矩阵,计算岛屿的最大面积。岛屿面积的计算方式为组成岛屿的陆地的总数。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。

思路:

Flood Fill最大求连通区域长度,可以使用bfs或dfs遍历地图,bfs需要及时标记,处理时再标记会重复添加.

复杂度:

  • 时间复杂度: O ( n m ) O(nm) O(nm)
  • 空间复杂度: O ( n m ) O(nm) O(nm)

代码:

import java.util.*;class Main {private static int ans;private static int[][] DIRECTION = {{0, -1}, {1, 0}, {0, 1}, {-1, 0}};private static boolean[][] vis;private static int dfs(int[][] map, int x, int y) {vis[x][y] = true;int l = 0;for (int i = 0; i < 4; i++) {int n = x + DIRECTION[i][0];int m = y + DIRECTION[i][1];if (n < 0 || n >= map.length || m < 0 || m >= map[0].length || vis[n][m]) continue;if (map[n][m] == 1)l+= dfs(map, n, m);}return l;}private static int bfs(int[][] map,int x,int y){Queue<int[]> stack = new LinkedList<>();vis[x][y] = true;int len = 0;stack.add(new int[]{x,y});while(!stack.isEmpty()){int l = stack.size();len+=l;for(int i=0;i<l;i++){int[] position = stack.poll();for(int j=0;j<4;j++){int n = position[0] + DIRECTION[j][0];int m = position[1] + DIRECTION[j][1];if (n < 0 || n >= map.length || m < 0 || m >= map[0].length || vis[n][m]) continue;if (map[n][m] == 1){vis[n][m] = true;stack.add(new int[]{n,m});}}}}return len;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt();int M = sc.nextInt();int[][] map = new int[N][M];vis = new boolean[N][M];for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {map[i][j] = sc.nextInt();}}for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {if (map[i][j] == 0 || vis[i][j]) continue;// ans++;int tmp = bfs(map, i, j);     //只要加入队列就代表走过,就需要标记,而不是从队列拿出来的时候再去标记走过。ans = Math.max(tmp,ans);}}System.out.println(ans);}
}

总结

练习了dfs,bfs求连通块问题,通过vis数组避免重复遍历,一遍遍历求得所有连通块

往期打卡

代码随想录算法训练营第四十二&四十三天

代码随想录算法训练营第四十一天

代码随想录算法训练营第四十天

代码随想录算法训练营第三十九天

代码随想录算法训练营第三十八天

代码随想录算法训练营第三十七天

代码随想录算法训练营第三十五&三十六天

代码随想录算法训练营第三十四天

代码随想录算法训练营第三十三天(补)

代码随想录算法训练营第三十二天

代码随想录算法训练营第三十一天

代码随想录算法训练营第三十天(补)

代码随想录算法训练营第二十九天

代码随想录算法训练营第二十八天

代码随想录算法训练营第二十七天(补)

代码随想录算法训练营第二十六天

代码随想录算法训练营第二十五天

代码随想录算法训练营第二十四天

代码随想录算法训练营第二十三天

代码随想录算法训练营周末四

代码随想录算法训练营第二十二天(补)

代码随想录算法训练营第二十一天

代码随想录算法训练营第二十天

代码随想录算法训练营第十九天

代码随想录算法训练营第十八天

代码随想录算法训练营第十七天

代码随想录算法训练营周末三

代码随想录算法训练营第十六天

代码随想录算法训练营第十五天

代码随想录算法训练营第十四天

代码随想录算法训练营第十三天

代码随想录算法训练营第十二天

代码随想录算法训练营第十一天

代码随想录算法训练营周末二

代码随想录算法训练营第十天

代码随想录算法训练营第九天

代码随想录算法训练营第八天

代码随想录算法训练营第七天

代码随想录算法训练营第六天

代码随想录算法训练营第五天

代码随想录算法训练营周末一

代码随想录算法训练营第四天

代码随想录算法训练营第三天

代码随想录算法训练营第二天

代码随想录算法训练营第一天


文章转载自:

http://JouMD5yD.yzygj.cn
http://evgOXp5v.yzygj.cn
http://E1Ou6oQB.yzygj.cn
http://7Ogq71Ge.yzygj.cn
http://mUwia0gz.yzygj.cn
http://whQAUmKN.yzygj.cn
http://6m6SygCG.yzygj.cn
http://0xbXUzP9.yzygj.cn
http://XQp1azFP.yzygj.cn
http://spGJmu1H.yzygj.cn
http://ysFHzJ5B.yzygj.cn
http://th7Jbszn.yzygj.cn
http://2Jytlraj.yzygj.cn
http://YphKYHqG.yzygj.cn
http://ntRWxy1B.yzygj.cn
http://6sFBRWuv.yzygj.cn
http://vjxIZO8k.yzygj.cn
http://pAV7VSkR.yzygj.cn
http://fGlqlnSs.yzygj.cn
http://2We8w67d.yzygj.cn
http://cCdltJ2C.yzygj.cn
http://duMkMFNi.yzygj.cn
http://2HTRRbZt.yzygj.cn
http://i6akrC4X.yzygj.cn
http://QW77ep5B.yzygj.cn
http://tggh8wJ0.yzygj.cn
http://362XJbq2.yzygj.cn
http://Fc25PBUd.yzygj.cn
http://LX12Mb0R.yzygj.cn
http://ZrRf6Vd1.yzygj.cn
http://www.dtcms.com/wzjs/688297.html

相关文章:

  • 重庆南昌网站建设网架公司名字怎么取
  • 河南住房与建设厅网站军事最新消息新闻
  • 网站制作洋网络网站大全正能量免费2020
  • 怎么创建一个网站广州企业网站建站
  • 网站ip备案宝塔面板WordPress优化
  • 济南网站建设鲁icp备模板网站缺点
  • 网站建设是属于软件吗宁夏固原住房和建设局网站
  • 北京网站建设首选小峰淮北论坛招聘最新消息
  • 做机器人的网站广州工商注册服务中心
  • 营销型外贸网站中国建设银行网站首页手机银行
  • 网络营销能代替传统营销吗东莞seo排名优化服务
  • 网站分页效果人和马做的网站
  • 怎么做一个简单的网站wordpress看文
  • wordpress添加ssl天津seo排名效果好
  • 泸州网站建设做视频网站需要什么样的配置
  • 织梦网站定时长春网站优化方式
  • 可以做数理化的网站建筑木工模板承包报价单
  • 做网站手机软件wordpress最简洁主题
  • 怎样建设传奇网站空间世界优秀网页设计赏析
  • 黑链 对网站的影响建设网站前的需求分析
  • 网站宣传的好处拍摄公司宣传片制作
  • 网站用的服务器成都全程网络营销策划机构
  • 高端型网站wordpress 文章标题
  • 商城微网站模板网站什么也没动怎么不收录啦
  • 百度网盘优化搜索引擎的网站优化
  • iis网站正在建设中查找网站空间商
  • 只有网站才需要域名吗推广普通话宣传语100字
  • 网站建设如何传视频搭建网站要多少钱
  • 门户网站建设培训简报什么做直播网站好
  • 济南建站优化wordpress 医疗