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

二级网站建设规范如何做wordpress文章页

二级网站建设规范,如何做wordpress文章页,wish网站应该怎么做,h5网址文章目录1. 题目2. 解题2.1 超时解2.1 改进计算方法1. 题目 假设你设计一个游戏#xff0c;用一个 m 行 n 列的 2D 网格来存储你的游戏地图。 起始的时候#xff0c;每个格子的地形都被默认标记为「水」。 我们可以通过使用 addLand 进行操作#xff0c;将位置 (row, col)… 文章目录1. 题目2. 解题2.1 超时解2.1 改进计算方法1. 题目 假设你设计一个游戏用一个 m 行 n 列的 2D 网格来存储你的游戏地图。 起始的时候每个格子的地形都被默认标记为「水」。 我们可以通过使用 addLand 进行操作将位置 (row, col) 的「水」变成「陆地」。 你将会被给定一个列表来记录所有需要被操作的位置然后你需要返回计算出来 每次 addLand 操作后岛屿的数量。 注意一个岛的定义是被「水」包围的「陆地」通过水平方向或者垂直方向上相邻的陆地连接而成。 你可以假设地图网格的四边均被无边无际的「水」所包围。 请仔细阅读下方示例与解析更加深入了解岛屿的判定。 示例: 输入: m 3, n 3, positions [[0,0], [0,1], [1,2], [2,1]] 输出: [1,1,2,3] 解析: 起初二维网格 grid 被全部注入「水」。0 代表「水」1 代表「陆地」 0 0 0 0 0 0 0 0 0操作 #1addLand(0, 0) 将 grid[0][0] 的水变为陆地。 1 0 0 0 0 0 Number of islands 1 0 0 0操作 #2addLand(0, 1) 将 grid[0][1] 的水变为陆地。 1 1 0 0 0 0 岛屿的数量为 1 0 0 0操作 #3addLand(1, 2) 将 grid[1][2] 的水变为陆地。 1 1 0 0 0 1 岛屿的数量为 2 0 0 0操作 #4addLand(2, 1) 将 grid[2][1] 的水变为陆地。 1 1 0 0 0 1 岛屿的数量为 3 0 1 0拓展 你是否能在 O(k log mn) 的时间复杂度程度内完成每次的计算 k 表示 positions 的长度来源力扣LeetCode 链接https://leetcode-cn.com/problems/number-of-islands-ii 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题 参考数据结构并查集Disjoint-Set 2.1 超时解 125 / 162 个通过测试用例 将矩阵的每个位置看成并查集中的一个点每次加入一个岛屿把四周是1的点合并掉计算集团个数时间复杂度 O(kmn)O(kmn)O(kmn) class dsu { public:vectorint f;dsu(int n){f.resize(n);for(int i 0; i n; i)f[i] i;}void merge(int a, int b){int fa find(a);int fb find(b);f[fa] fb;}int find(int a){int origin a;while(a ! f[a])a f[a];return f[origin] a;}int countUni(vectorvectorint grid){int count 0, x, y, n grid[0].size();for(int i 0; i f.size(); i){ x i/n, y i-x*n;if(i find(i) grid[x][y]1)count;}return count;} }; class Solution { public:vectorint numIslands2(int m, int n, vectorvectorint positions) {int N m*n, pos, x, y;vectorvectorint grid(m,vectorint(n,0));dsu u(N);vectorint ans(positions.size());vectorvectorint dir {{1,0},{0,1},{0,-1},{-1,0}};for(int i 0, k; i positions.size(); i){grid[positions[i][0]][positions[i][1]] 1;//标记为岛屿pos positions[i][0]*npositions[i][1];//对应并查集中的位置for(k 0; k 4; k){x positions[i][0] dir[k][0];y positions[i][1] dir[k][1];//周围坐标x,yif(x0 xm y0 yn grid[x][y]1)u.merge(pos, x*ny);//合并}ans[i] u.countUni(grid);}return ans;} };2.1 改进计算方法 并查集merge 函数返回是否被合并了合并了数量就减1注意有重复岛屿不能算 class dsu { public:vectorint f;dsu(int n){f.resize(n);for(int i 0; i n; i)f[i] i;}bool merge(int a, int b){int fa find(a);int fb find(b);if(fa ! fb){f[fa] fb;return true;}return false;//返回是否被合并了}int find(int a){int origin a;while(a ! f[a])a f[a];return f[origin] a;} }; class Solution { public:vectorint numIslands2(int m, int n, vectorvectorint positions) {int N m*n, pos, x, y;vectorvectorint grid(m,vectorint(n,0));dsu u(N);vectorint ans(positions.size());vectorvectorint dir {{1,0},{0,1},{0,-1},{-1,0}};unordered_setint s;//有重复的岛屿for(int i 0, k; i positions.size(); i){ans[i] (i0 ? ans[i-1] : 0 )1;//先把这个岛屿算作孤立1grid[positions[i][0]][positions[i][1]] 1;//标记为岛屿pos positions[i][0]*npositions[i][1];//对应并查集中的位置if(s.count(pos))//有该岛屿了重复添加{ans[i]--;continue;}s.insert(pos);for(k 0; k 4; k){x positions[i][0] dir[k][0];y positions[i][1] dir[k][1];//周围坐标x,yif(x0 xm y0 yn grid[x][y]1){if(u.merge(pos, x*ny))//合并了ans[i]--;//减1}}}return ans;} };156 ms 34.7 MB 我的CSDN博客地址 https://michael.blog.csdn.net/ 长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步
http://wiki.neutronadmin.com/news/397654/

相关文章:

  • 企业网站的建设 英文摘要泰安毕业生档案查询
  • 条件查询 php网站源码泉州seo搜索优化合作
  • 营销展示型网站建设价格偃师建设局网站
  • 做网站的一定要开80或8080端口网站建设 网页设计
  • jsp网站开发中常见问题wordpress搜索框样式
  • 制作查询网站本地搭建linux服务器做网站
  • 网站标签制作无法跳转到建设银行网站
  • 网站策划主要工作是什么基于wordpress的博客
  • 如何制作网站策划书免费跨境电商网站
  • 找到网站后台地址应用商店最新版本
  • 建设厅网站业务系统板块查成绩宜宾三江新区核酸检测
  • 网站建设全部流程图wordpress 管理员密码
  • 苏州网站建设案例企业网站seo教程
  • 优秀的网站开发表白网站怎么做
  • 苏州做网站推广的广告联盟平台排名
  • 旅游电子商务网站的建设方式天天向上网站建设
  • 上海市住房和城乡建设管理局网站一个网站制作流程
  • 做简单最网站的软件是静态展示类网站
  • 顶棒 技术支持 东莞网站建设易企秀网站怎么做轮播图
  • 网站后台制作视频教程网页培训
  • 网站服务器参数西部数码网站管理助手4.0
  • 响应式潍坊网站建设丽江市住房与城乡建设局网站
  • 广州建设网站是什么纵横网站建立
  • 南京做企业网站40个超好玩的网页小游戏
  • 重庆平台网站建设价格中国建筑招聘2022
  • 做网站一天忙吗深圳网站商城建设
  • 东莞长安营销型网站建设漯河网做网站
  • 模板建站按年收费网站建设成都哪家公司好
  • 个人网站域名申请学python去哪个培训机构好
  • 个人信息网站html政法网 网站建设