wy的leetcode刷题记录_Day92

wy的leetcode刷题记录_Day92

声明

本文章的所有题目信息都来源于leetcode
如有侵权请联系我删掉!
时间:2024-3-22

前言

目录

  • wy的leetcode刷题记录_Day92
    • 声明
    • 前言
    • 2617. 网格图中最少访问的格子数
      • 题目介绍
      • 思路
      • 代码
      • 收获
    • 695. 岛屿的最大面积
      • 题目介绍
      • 思路
      • 代码
      • 收获

2617. 网格图中最少访问的格子数

今天的每日一题是:2617. 网格图中最少访问的格子数

题目介绍

给你一个下标从 0 开始的 m x n 整数矩阵 grid 。你一开始的位置在 左上角 格子 (0, 0) 。

当你在格子 (i, j) 的时候,你可以移动到以下格子之一:

  • 满足 j < k <= grid[i][j] + j 的格子 (i, k) (向右移动),或者
  • 满足 i < k <= grid[i][j] + i 的格子 (k, j) (向下移动)。

请你返回到达 右下角 格子 (m - 1, n - 1) 需要经过的最少移动格子数,如果无法到达右下角格子,请你返回 -1 。

示例 1:
在这里插入图片描述

输入:grid = [[3,4,2,1],[4,2,3,1],[2,1,0,0],[2,4,0,0]]
输出:4
解释:上图展示了到达右下角格子经过的 4 个格子。

示例 2:
在这里插入图片描述

输入:grid = [[3,4,2,1],[4,2,1,1],[2,1,1,0],[3,4,1,0]]
输出:3
解释:上图展示了到达右下角格子经过的 3 个格子。

示例 3:
在这里插入图片描述
输入:grid = [[2,1,0],[1,0,0]]
输出:-1
解释:无法到达右下角格子。

思路

二维动态规划:使用dp[i][j]表示i行j列这个格子需要走几步,观察题意发现通过一格dp[i][j]可以向下和向右推出对应值内的格子,于是我们只需要对每一个格子进行遍历,维护其对其他格子的影响即可。

  • dp[i+h][j]=min(dp[i+h][j],dp[i][j]+1);
  • dp[i][j+h]=min(dp[i][j+h],dp[i][j]+1);

最后dp[n-1][m-1]就是答案。
最后超时,这道题有点超出能力范围了。

代码

class Solution {
public:int INT_MAX1=100001;int minimumVisitedCells(vector<vector<int>>& grid) {int n=grid.size();int m=grid[0].size();vector<vector<int>> dp(n,vector<int>(m));for(int i=0;i<n;i++){for(int j=0;j<m;j++){dp[i][j]=INT_MAX1;}}dp[0][0]=1;for(int i=0;i<n;i++){for(int j=0;j<m;j++){for(int h=0;h<=grid[i][j];h++){if(i+h<n)dp[i+h][j]=min(dp[i+h][j],dp[i][j]+1);if(j+h<m)dp[i][j+h]=min(dp[i][j+h],dp[i][j]+1);}}}if(dp[n-1][m-1]==INT_MAX1)return -1;return dp[n-1][m-1];}
};

收获

695. 岛屿的最大面积

695. 岛屿的最大面积

题目介绍

给你一个大小为 m x n 的二进制矩阵 grid 。

岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。

岛屿的面积是岛上值为 1 的单元格的数目。

计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。

示例 1:

在这里插入图片描述

输入:grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]
输出:6
解释:答案不应该是 11 ,因为岛屿只能包含水平或垂直这四个方向上的 1 。

示例 2:

输入:grid = [[0,0,0,0,0,0,0,0]]
输出:0

思路

DFS:对每个格子进行dfs,同时需要对遍历过的陆地进行标记(标记为2),当遇到遍历过的陆地时或者遇到海洋返回0,超出范围也返回0,否则继续递归上下左右四个方向的格子,并维护一个最大面积变量。

代码

class Solution {
public:int ans=0;int dfs(vector<vector<int>>& grid,int i,int j){int n=grid.size();int m=grid[0].size();if(i>=n||j>=m||i<0||j<0)return 0;if(grid[i][j]==1){grid[i][j]=2;return dfs(grid,i+1,j)+dfs(grid,i,j+1)+dfs(grid,i-1,j)+dfs(grid,i,j-1)+1;}return 0;}int maxAreaOfIsland(vector<vector<int>>& grid) {int n=grid.size();int m=grid[0].size();for(int i=0;i<n;i++){for(int j=0;j<m;j++){ans=max(ans,dfs(grid,i,j));}}return ans;}
};

收获

图上DFS。后面还有四道同样类型的题目。

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

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

相关文章

Springboot vue elementui 超市管理系统

Springboot vue elementui 超市管理系统 点击获取项目全套源码

适合新生儿的奶瓶有哪些?五款高分新生儿奶瓶分享!

每一个有新生儿的家庭都一定会挑选奶瓶&#xff0c;但是因为市面有太多品牌和款式&#xff0c;让大家难以挑选&#xff0c;更为重要的是还有可能会不小心选到劣质的产品&#xff0c;不仅奶嘴的仿真度差、易胀气&#xff0c;还可能高温消毒后散发有害物质&#xff01;那么新生儿…

python基础知识(四)

if not x % 2 > if x % 2 ! 0 Python HTML和XML解析的第三方库是 Beautifull Soup 不属于软件设计原则是 自底向上 用来表示实体之间联系的是 二维表 当对关系R和S进行自然连接时&#xff0c;要求R和S含有一个或者多个共有的 属性&#xff08;关系就是二维表&#xff09…

仿muduo库实现one thread one loop式并发服务器

文章目录 一、项目简介 二、项目整体认识 2、1 HTTP服务器 2、2 Reactor模型 三、预备知识 3、1 C11 中的 bind 3、2 简单的秒级定时任务实现 3、3 正则库的简单使用 3、4 通用类型any类型的实现 四、服务器功能模块划分与实现 4、1 Buffer模块 4、2 Socket模块 4、3 Channel模…

算法系列--递归(2)

&#x1f495;"什么样的灵魂就要什么样的养料&#xff0c;越悲怆的时候我越想嬉皮。"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;算法系列–递归(2) 前言:今天带来的是算法系列--递归(2)的讲解,包含六个和二叉树相关的题目哦 1.计算布尔⼆叉树的…

就业班 第二阶段 2401--3.21 day3 备份

一、逻辑备份 备份的是建表、建库、插入等操作所执行SQL语句&#xff0c;适用于中小型数据库&#xff0c;效率相对较低。 本质&#xff1a;导出的是SQL语句文件 优点&#xff1a;不论是什么存储引擎&#xff0c;都可以用mysqldump备成SQL语句 缺点&#xff1a;速度较慢&…

005——串口移植(基于鸿蒙liteos-a)

目录 一、 Liteos-a中串口的使用 1.1 内核里打印 1.2 APP控制台 ​编辑 1.2.1 /dev/console 1.2.2 /dev/serial 1.2.3 /dev/uartddev-0 1. 总体介绍 2. device_t 3. drvier_t 4. uartdev_fops 1.2.4 uart_ops 二、 鸿蒙串口内部的一些机制&#xff08;流水账&…

K8S node磁盘清理

K8S磁盘清理 K8S的部署形式相比传统非容器部署&#xff0c;会消耗更多的磁盘&#xff0c;在运行时可能会把磁盘占满。 这里以使用containerd运行时的K8S node为例&#xff0c;说明磁盘会用到那里了和如何清理磁盘 通用处理 磁盘清理: du -h --max-depth6 / 2>/dev/nul…

docker学习笔记 三-----docker安装部署

我使用的部署环境是centos 7.9 1、安装依赖工具 yum install -y yum-utils device-mapper-persistent-data lvm2 安装完成如下图 2、添加docker的软件信息源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo url地址为如…

QGraphicsView的使用,view坐标,scene坐标,item坐标

Graphics View绘图构架 QGraphicsScene&#xff08;场景&#xff09;&#xff1a;可以管理多个图形项QGraphicsItem&#xff08;图形项&#xff09;&#xff1a;也就是图元&#xff0c;支持鼠标事件响应。QGraphicsView&#xff08;视图&#xff09;&#xff1a;关联场景可以让…

数据科学详解与人工智能关系

一、数据科学是什么 数据科学是一个混合交叉学科&#xff0c;它涉及数学、统计学、计算机科学和领域知识&#xff0c;旨在从数据中提取有意义的信息和知识。数据科学家利用各种技术和工具来收集、处理、分析和解释大量的数据&#xff0c;以便为组织和企业做出决策和预测。数据科…

Vue3:路由组件的props用法

一、情景说明 路由组件间&#xff0c;传递参数时&#xff0c;更优雅的写法 Vue3的写法和Vue2的写法基本相似&#xff0c;就是接收参数的组件&#xff0c;略有不同 Vue2的写法&#xff1a;https://blog.csdn.net/Brave_heart4pzj/article/details/136283870 二、案例 1、传参…

canvas跟随鼠标移动画带透明度的线

提示&#xff1a;canvas画线 文章目录 前言一、带透明度的线二、试错&#xff0c;只有lineTo的时候画&#xff0c;只有最后地方是透明度的三、试错&#xff0c;只存上一次的点&#xff0c;线会出现断裂的情况总结 前言 一、带透明度的线 test.html <!DOCTYPE html> &l…

小小知识点-produce, product, production.

produce做动词的意思就不多说了。主要区别这三个名词&#xff1a;produce, product, production.produce v.生产; 制造; 引起; 产生; 招致; 出示; 制作; 导演; 播放; 播送; 使(线段)延长&#xff1b;n.产品; 物产; 成果; 结果&#xff1b; product n. 作品; 产品; 积; 结果; 产…

Linux:执行命令的命令eval与Bash解析命令的方式

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 eval命令用于接收参数&#xff0c;并将这些参数作为一行命令执行&#xff0c;这也许会使人困惑&#xff0c;为什么我不能直接执行命令而需要使用eval命令间接执行呢&…

看了一篇开源作者文章我沉默了良久还是发一篇心情文章

开源框架 NanUI 项目宣布将暂停开发&#xff0c;作者转行卖钢材的新闻让我心生悲意&#xff0c;开源作者生存现状很多人并不了解&#xff0c;在开源社区里能赚到钱的毕竟是少数丛林法则在开源社区同样适用&#xff0c;看了开源框架 NanUI 项目宣布将暂停开发&#xff0c;作者转…

MySQL数据库事务介绍

前言 在MySQL数据库中&#xff0c;事务&#xff08;Transaction&#xff09;是指一组SQL语句的执行序列&#xff0c;这些SQL语句要么全部执行成功&#xff0c;要么全部执行失败&#xff0c;保证数据库的一致性和完整性&#xff1b;用于操作量大、复杂度高的数据。 目录 一、…

Python之Web开发中级教程----Django站点管理

Python之Web开发中级教程----Django站点管理 网站的开发分为两部分&#xff1a;内容发布和公共访问 内容发布是由网站的管理员负责查看、添加、修改、删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模块, 需要按照如下步骤操作 : 1.管理界面本地…

如何一键升级 package.json 下所有依赖的版本

要一键升级package.json下所有依赖的版本&#xff0c;你可以使用npm-check-updates这个工具。首先&#xff0c;你需要全局安装这个工具&#xff1a; npm install -g npm-check-updates安装完成后&#xff0c;运行以下命令来更新package.json文件中的所有依赖到最新版本&#x…

Deep Graph Representation Learning and Optimization for Influence Maximization

Abstract 影响力最大化&#xff08;IM&#xff09;被表述为从社交网络中选择一组初始用户&#xff0c;以最大化受影响用户的预期数量。研究人员在设计各种传统方法方面取得了巨大进展&#xff0c;其理论设计和性能增益已接近极限。在过去的几年里&#xff0c;基于学习的IM方法的…