LeetCode 361. 轰炸敌人(前缀和DP)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

想象一下炸弹人游戏,在你面前有一个二维的网格来表示地图,网格中的格子分别被以下三种符号占据:

'W' 表示一堵墙
'E' 表示一个敌人
'0'(数字 0)表示一个空位

在这里插入图片描述

请你计算一个炸弹最多能炸多少敌人。

由于炸弹的威力不足以穿透墙体,炸弹只能炸到同一行和同一列没被墙体挡住的敌人。

注意:你只能把炸弹放在一个空的格子里

示例:输入: [["0","E","0","0"],["E","0","W","E"],["0","E","0","0"]]
输出: 3 
解释: 对于如下网格0 E 0 0 
E 0 W E 
0 E 0 0假如在位置 (1,1) 放置炸弹的话,可以炸到 3 个敌人

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/bomb-enemy
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 分别计算4个方向的前缀和,每个位置的数量是四个前缀和相加
class Solution {
public:int maxKilledEnemies(vector<vector<char>>& grid) {if(grid.empty() || grid[0].empty())return 0;int m = grid.size(), n = grid[0].size(), i, j, pre = 0;vector<vector<int>> ans(m, vector<int>(n,0));//分四个方向求前缀和for(i = 0; i < m; ++i)for(j = 0, pre=0; j < n; ++j){if(grid[i][j] =='W')pre = 0;else if(grid[i][j] =='E')pre++;elseans[i][j] += pre;}for(i = 0; i < m; ++i)for(j = n-1, pre=0; j >= 0; --j){if(grid[i][j] =='W')pre = 0;else if(grid[i][j] =='E')pre++;elseans[i][j] += pre;}for(j = 0; j < n; ++j)for(i = 0, pre=0; i < m; ++i){if(grid[i][j] =='W')pre = 0;else if(grid[i][j] =='E')pre++;elseans[i][j] += pre;}for(j = 0; j < n; ++j)for(i = m-1, pre=0; i >= 0; --i){if(grid[i][j] =='W')pre = 0;else if(grid[i][j] =='E')pre++;elseans[i][j] += pre;}int maxcount = 0;for(i = 0; i < m; ++i)for(j = 0; j < n; ++j)maxcount = max(maxcount, ans[i][j]);return maxcount;}
};

36 ms 9.6 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

led拼接屏报价_液晶拼接屏与led显示屏的区别在哪?

在目前的大屏显示产品中&#xff0c;液晶拼接屏和led显示屏是两种比较普遍的产品&#xff0c;拼接大屏是通过单个液晶拼接单元拼接而成的显示大屏&#xff0c;而led显示屏则是通过发光二极管组成密集点阵组成图像显示&#xff0c;我们通常听到的P1、P2代表的是像素点距离&#…

Powerbi实战--常用新建表代码(单位切换,日期表)

单位切换 #Model_Unit DATATABLE("单位名称",STRING,"OrderBy_unit",INTEGER,"Value",INTEGER, {{ "无", 1, 1 },{ "万", 2, 10000 },{ "百万", 3, 1000000 },{ "亿", 4, 100000000 }})日期相关表…

Windows Phone 8安装包中的文件和独立存储区中的文件访问

安装包中的文件&#xff1a; Windows Phone 8访问安装包中的文件可以直接采用相对路径的形式&#xff0c;"apps/readme.txt"。例如&#xff1a;FileStream stream File.OpenRead("apps/readme.txt"); 也可以采用下面的方式&#xff1a; string installPat…

LeetCode 356. 直线镜像

文章目录1. 题目2. 解题1. 题目 在一个二维平面空间中&#xff0c;给你 n 个点的坐标。 问&#xff0c;是否能找出一条平行于 y 轴的直线&#xff0c;让这些点关于这条直线成镜像排布&#xff1f; 示例 1&#xff1a; 输入: [[1,1],[-1,1]] 输出: true示例 2&#xff1a; 输入…

使用DispatcherTimer计时器

《银光志--Silverlight 3.0开发详解与最佳实践》第3章XAML与Silverlight编程内功&#xff0c;通过本章的学习&#xff0c;相信你会对Silverlight编程模型、XAML、事件处理&#xff0c;以及LINQ查询语言有了一个比较全面的了解&#xff0c;在本章的示例中应用的都是一些基本的XA…

静物摄影用光技巧_室内人像摄影想要拍好,这3种用光技巧你了解吗?

选择靠近窗户的位置在室内可以首先考虑在靠近窗户的位置进行拍摄&#xff0c;因为窗户边上尤其是朝北的窗户会有非常柔和的散射光&#xff0c;当投射进窗户的是直射光线时&#xff0c;摄影者还可以拉上一层很薄的窗帘来缓解一下光线的强度&#xff0c;在靠近窗户的位置&#xf…

SQL基础知识:DDL、DML、DQL

DDL&#xff1a;数据定义语言 对数据库和数据表的管理 数据库 1、创建 create database [if not exists] databasename;2、列举 show databases;3、查看当前所在数据库 select database();4、切换 use databasename;5、删除 drop database [if exists] databasename;数…

LeetCode 660. 移除 9(9进制)

文章目录1. 题目2. 解题1. 题目 从 1 开始&#xff0c;移除所有包含数字 9 的所有整数&#xff0c;例如 9&#xff0c;19&#xff0c;29&#xff0c;…… 这样就获得了一个新的整数数列&#xff1a;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&…

DllImport的用法

DllImport是System.Runtime.InteropServices命名空间下的一个属性类&#xff0c;其功能是提供从非托管DLL导出的函数的必要调用信息。 DllImport属性应用于方法&#xff0c;要求最少要提供包含入口点的dll的名称。 DllImport的定义如下&#xff1a; [AttributeUsage(Attr…

postman怎么导出测试用例_利用Charles抓包巧转接口自动化测试用例

在前面的文章中&#xff0c;也有介绍类似的工具的。例如&#xff1a;一键将接口请求转为测试用例介绍了开源的mitmproxy录制转化为接口测试用例&#xff0c;postman接口用例转化为python自动化测试用例 文章记录了如何把postman的测试用例转化为python的接口自动化的测试用例&a…

【基础知识】Sticky Bit, SUID,SGID

作者&#xff1a;gnuhpc 出处&#xff1a;http://www.cnblogs.com/gnuhpc/ 1.Sticky Bit 1&#xff09;作用于文件&#xff1a;曾经被一些老的Unix系统用来将可执行文件在第一次执行后放在swap中提高后续该程序的运行速度&#xff0c;现在已经过时。 2&#xff09;作用于目录&a…

LeetCode 1236. 网络爬虫(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 给定一个链接 startUrl 和一个接口 HtmlParser &#xff0c;请你实现一个网络爬虫&#xff0c;以实现爬取同 startUrl 拥有相同 域名标签 的全部链接。该爬虫得到的全部链接可以 任何顺序 返回结果。 你的网络爬虫应当按照如下模…

启动不起来_国产开源工具:U盘启动工具Ventoy v1.0.29发布——墨涩网

Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘&#xff0c;你只需要把ISO文件拷贝到U盘里面就可以启动了&#xff0c;无需其他操作。你可以一次性拷贝很多个不同类型的ISO文件&#xff0c;在启动时Ventoy会显示一个菜单来选择。 无差异支持Legacy B…

众多Android 开源项目再次推荐,学习不可错过

FBReaderJ FBReaderJ用于Android平台的电子书阅读器&#xff0c;它支持多种电子书籍格式包括&#xff1a;oeb、ePub和fb2。此外还支持直接读取zip、tar和gzip等压缩文档。项目地址&#xff1a;http://www.fbreader.org/FBReaderJ/Angle Angle是一款专为Android平台设计的&#…

LeetCode 1231. 分享巧克力(极小极大化 二分查找)

文章目录1. 题目2. 解题1. 题目 你有一大块巧克力&#xff0c;它由一些甜度不完全相同的小块组成。我们用数组 sweetness 来表示每一小块的甜度。 你打算和 K 名朋友一起分享这块巧克力&#xff0c;所以你需要将切割 K 次才能得到 K1 块&#xff0c;每一块都由一些 连续 的小…

筛选末位数字为1或5_看看广州示范性高中排行榜,怎么填报志愿?如何运用末位考生分数...

人们评价一所高中学校的层次通常会用两个指标&#xff1a;高考升学率和录取分数线&#xff0c;升学率又多以高优率高低为排序标准。在志愿填报期间&#xff0c;不少家长总希望我对学校进行比较。我试以三个维度对广州的70所示范性高中学校(校区)进行比较供大家参考。2016-2018近…

简明Python3教程 8.控制流

简介 迄今为止我们见到的所有程序总是含有一连串语句并且python忠实的顺序执行它们。 那么如何改变它们的执行顺序呢&#xff1f;例如你希望程序根据不同情况作出不同反应&#xff0c;按照当前时间分别 打印出’Good Morning’或’Good Evening’? 也许你已经猜到了&#xff0…

LeetCode 1166. 设计文件系统(哈希map)

文章目录1. 题目2. 解题1. 题目 你需要设计一个能提供下面两个函数的文件系统&#xff1a; create(path, value): 创建一个新的路径&#xff0c;并尽可能将值 value 与路径 path 关联&#xff0c;然后返回 True。 如果路径已经存在或者路径的父路径不存在&#xff0c;则返回 …

python 生成html文件浏览器_Handout库:能将python脚本转化为html展示文件

有的时候我们需要将python代码进行展示讲解&#xff0c;这个时候使用py文件进行讲解效果并不是最好的。如果能转化为html文件&#xff0c;在浏览器中展示&#xff0c;那就完美了。好消息是存在一个名为handout的库可以实现我们的设想。安装pip3 installU handout快速学习下面是…

转 OFBIZ webservice简介

OFBIZ webservice简介 Opentaps(OFBiz 9.04之后)中webservice用的是AXIS2&#xff0c;最开始自己在网上搜了好多资料&#xff0c;自己拿回来测试&#xff0c;发现都不对。后自己再找了下AXIS的资料说&#xff0c;那种报错很有可能是由于两个版本不对引起的&#xff0c;所以就决…