代码随想录三刷day50

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、力扣84. 柱状图中最大的矩形
  • 二、力扣797. 所有可能的路径
  • 三、力扣「代码随想录」DFS,BDF 你没注意的细节都给你列出来了!
  • 四、力扣200. 岛屿数量


前言


dfs和bfs

一、力扣84. 柱状图中最大的矩形

class Solution {public int largestRectangleArea(int[] heights) {int[] arr = new int[heights.length+2];int res = 0;for(int i = 0; i < heights.length; i ++){arr[i+1] = heights[i];}Deque<Integer> deq = new LinkedList<>();deq.offerLast(0);for(int i = 1; i < arr.length; i ++){if(arr[i] >= arr[deq.peekLast()]){deq.offerLast(i);}else{while(arr[i] < arr[deq.peekLast()]){int right = i;int mid = deq.pollLast();int left = deq.peekLast();int w = right - left -1;int h = arr[mid];res = Math.max(res, w * h);}deq.offerLast(i);}}return res;}
}

二、力扣797. 所有可能的路径

class Solution {List<List<Integer>> res = new ArrayList<>();List<Integer> path = new ArrayList();boolean[] flag;public List<List<Integer>> allPathsSourceTarget(int[][] graph) {flag = new boolean[graph.length];path.add(0);flag[0] = true;dfs(graph,0);return res;}public void dfs(int[][] graph, int cur){if(cur == graph.length-1){res.add(new ArrayList<>(path));return;}for(int i = 0; i < graph[cur].length; i ++){int index = graph[cur][i];if(flag[index]){continue;}flag[index] = true;path.add(index);dfs(graph,index);flag[index] = false;path.remove(path.size()-1);}}
}

三、力扣「代码随想录」DFS,BDF 你没注意的细节都给你列出来了!

class Solution {public int numIslands(char[][] grid) {int res = 0;int m = grid.length, n = grid[0].length;boolean[][] flag = new boolean[m][n];int[][] dir = new int[][]{{0,1},{0,-1},{-1,0},{1,0}};Deque<int[]> deq = new LinkedList<>();for(int i = 0; i < m; i ++){for(int j = 0; j < n; j ++){if(!flag[i][j]){if(grid[i][j] == '1'){deq.offerLast(new int[]{i,j});flag[i][j] = true;res ++;while(!deq.isEmpty()){int[] cur = deq.pollFirst();for(int k = 0; k < 4; k ++){int x = cur[0] + dir[k][0];int y = cur[1] + dir[k][1];if(x < 0 || x >= m || y < 0 || y >= n){continue;}if(grid[x][y] == '1' && !flag[x][y]){deq.offerLast(new int[]{x,y});flag[x][y] = true;}}} }else{flag[i][j] = true;}}}}return res;}
}

四、力扣200. 岛屿数量

class Solution {boolean[][] flag;int[][] arr = new int[][]{{0,1},{0,-1},{-1,0},{1,0}};public int numIslands(char[][] grid) {int res = 0;int m = grid.length, n = grid[0].length;flag = new boolean[m][n];for(int i = 0; i < m; i ++){for(int j = 0; j < n; j ++){if(!flag[i][j] && grid[i][j] == '1'){res ++;flag[i][j] = true;dfs(grid,i,j);}}}return res;}public void dfs(char[][] grid, int x , int y){for(int i = 0; i < 4; i ++){int curX = x + arr[i][0];int curY = y + arr[i][1];if(curX < 0 || curX >= grid.length || curY < 0 || curY >= grid[0].length){continue;}if(!flag[curX][curY] && grid[curX][curY] == '1'){flag[curX][curY] = true;dfs(grid,curX,curY);}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/12464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot+vue+Mysql的在线BLOG网

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

虾皮选品:Shopee首季盈利2.4亿;TikTok美区电商权限要求降低

2024年5月14号&#xff0c;跨境电商日报&#xff1a; 1.Ozon已成功回款 2.TikTok降低美区达人开通电商权限要求 3.Shopee首季盈利2.4亿 4.6月1日起&#xff0c;亚马逊退货处理费收取标准更新 5.欧盟委员会对从中国台湾地区和越南进口的不锈钢冷轧产品征收反补贴和反倾销税…

《卡巴拉数字密码》PDF完整版

“卡巴拉(Cabala) ”这个词对于日本人来说可能比较陌生&#xff0c; 但相信犹太人对它会十分熟悉&#xff0c;因为它就是犹太民族世代传承的一套秘法。 说起犹太人&#xff0c;总给人这样一种印象&#xff1a;一个长久以来备受迫害、具有悲剧色彩的民族&#xff1b;同时也是一个…

在数据库中使用存储过程插入单组/多组数据

存储过程可以插入单组数据&#xff0c;也可以以字符串的形式插入多组数据&#xff0c;将字符串中的信息拆分成插入的数据。 首先建立一个简单的数据库 create database student; use student;选中数据库之后建立一张学生表 create table stu(uid int primary key,uname varc…

wordpress 访问文章内容页 notfound

解决&#xff1a; 程序对应的伪静态规则文件.htaccess是空的 网站根目录下要有 .htaccess 文件&#xff0c;然后将下面的代码复制进去。 <ifmodule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRew…

代码随想录算法训练营第36期DAY28

DAY28 216组合总和-iii 未剪枝&#xff0c;注意istartindex开始&#xff1a; class Solution {private: vector<vector<int>> result; vector<int> path; void backtracking(int k,int sum,int targetsum,int startindex){ if(path.size(…

python模拟QQ聊天的代码

以下是一个简单的Python模拟QQ聊天的代码示例&#xff1a; python # 导入QQ消息包 import tqq # 创建QQ客户端对象 client tqq.TQQClient() # 连接QQ服务器 client.connect("你的QQ号码", "你的QQ密码") # 创建一个QQ会话对象 session client.session() …

绩效管理的工具和方法有哪些?

绩效管理是组织和个人为达成目标而共同参与的一个持续循环过程&#xff0c;其目的是持续提升个人、部门和组织的绩效。为实现这一目标&#xff0c;绩效管理采用了一系列工具和方法。 其中&#xff0c;平衡计分卡是一种战略管理系统&#xff0c;也是一种绩效管理的理论框架。它将…

python的数据类型和变量

python的数据类型和变量 变量 变量使用变量名来表示, 变量名由字母、下划线和数字组成&#xff0c;首字母不能是数字 na 1 An 1变量是内存空间的引用&#xff0c;所以变量可以指向任何对象 所以python的是左边变量指向了右边对象的内存 x 1 y hello x y y world prin…

c++高级篇(一) —— 初识Linux下的进程控制

linux的信号 信号的概念 在Linux中&#xff0c;信号是一种用于进程间通信和处理异步事件的机制&#xff0c;用于进程之间相互传递消息和通知进程发生了事件&#xff0c;但是&#xff0c;它不能给进程传递任何数据。 信号产生的原因有很多种&#xff0c;在shell中&#xff0c…

每日两题 / 437. 路径总和 III 105. 从前序与中序遍历序列构造二叉树(LeetCode热题100)

437. 路径总和 III - 力扣&#xff08;LeetCode&#xff09; 前序遍历时&#xff0c;维护当前路径&#xff08;根节点开始&#xff09;的路径和&#xff0c;同时记录路径上每个节点的路径和 假设当前路径和为cur&#xff0c;那么ans 路径和(cur - target)的出现次数 /*** D…

fastjson_1.2.24和Shiro(CVE-2016-4437)漏洞复现

文章目录 一、fastjson 1.2.24远程命令执行漏洞复现二、shiro反序列化漏洞(CVE-2016-4437)1、Shiro漏洞原理2、手工验证漏洞3、使用ShiroAttack2 一、fastjson 1.2.24远程命令执行漏洞复现 配置环境&#xff1a;本机java 8环境 kali操作系统&#xff08;java8&#xff09; c…

webapi路由寻址机制

路由匹配的原则 1、启动 Application_Start 文件夹中有个WebApiConfig 会把路由规则写入一个容器 2、客户端请求时&#xff1a; 请求会去容器匹配&#xff0c;先找到控制器&#xff08;找到满足的&#xff0c;就转下一步了&#xff09;&#xff0c;然后找Action&#xff0c;we…

被动防护不如主动出击

自网络的诞生以来&#xff0c;攻击威胁事件不断涌现&#xff0c;网络攻防对抗已然成为信息时代背景下的一场无硝烟的战争。然而&#xff0c;传统的网络防御技术&#xff0c;如防火墙和入侵检测技术&#xff0c;往往局限于一种被动的敌暗我明的防御模式&#xff0c;面对攻击者无…

第四届辽宁省大学生程序设计竞赛

比赛经历&#xff1a;2024.5.14简单vp了一个小时只写出了签到题4个然后跑路了 补题&#xff1a;感觉其他题有点太抽象了主要补了一题&#xff0c;在区间问题中数据结构的使用 比赛链接[点我即可] 目录 A.欢迎来到辽宁省赛 B.胜率 F.隔板与水槽 H.取石子 L.区间与绝对值 …

NMACDR:基于邻居交互增强和多头注意力机制的跨域推荐模型

基于邻居交互增强和多头注意力机制的跨域推荐模型 湖北民族大学学报-孙克雷、汪盈盈-2023 思路 针对基于映射的跨域推荐模型没有充分关注源域中数据稀疏的用户,导致用户偏好的迁移效率降低的问题,提出本文。 首先,利用邻居用户的交互来增强源域中数据稀疏用户的交互序列,…

RS422一主多从MAX3490

RS422一主多从MAX3490 最近项目用到了RS422一主多从&#xff0c;一个主机4个从机。芯片用的MAX3490&#xff0c;几经折腾&#xff0c;最终只能从一拖4改为一拖2。 主机发送端&#xff0c;从机4个接收端都是正常的&#xff0c;没有问题。波形非常完美&#xff0c;没有太大变形 …

回溯算法(Backtracking Algorithm)

回溯算法&#xff08;Backtracking Algorithm&#xff09;是一种试探性的解决问题方法&#xff0c;主要用于解决约束满足问题。这类问题通常存在多个可能的解&#xff0c;且解的空间可以被形式化地表示出来。回溯算法通过逐步构造候选解并检验其合法性的方式来探索解空间&#…

2024制造行业面临的数字挑战

1、市场环境变化频繁 受国际关系、疫情爆发等意外事件影响&#xff0c;需求端和供应端都充满了不确定性&#xff0c;数据信息的传递和透明就显得尤为重要。 2、产能原料浪费严重 过程管控和数据传递的缺失和不及时导致工厂生产现场异常频发&#xff0c;质量水平低下以及生产产…

uni-segmented-control插件使用

dcloud插件市场 前端/uniapp 1.HBuildX打开目标项目 2.进入dcloud插件市场下载目标插件 3.看到如下提示(已经可以在目标项目中使用插件啦) 4.项目正式使用