news 2026/4/26 11:15:12

轰炸敌人,最多可以摧毁的敌人城堡数目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
轰炸敌人,最多可以摧毁的敌人城堡数目

我的解法:

对于每一个空位置,进行一次bfs,从上下左右四个方向去寻找,这是岛屿问题的相似处理,但是这个题可以优化,因为横竖方向可以进行动规优化。

我们不需要对每个0都重新数一遍它所在的行和列有多少敌人。

  • :对于同一行里、两个墙之间的所有格子,它们能炸到的“行敌人”数量是一样的。我们只在行的开头或者刚经过一个墙之后,重新计算当前这段的敌人数量。

  • :同理,对于同一列里、两个墙之间的所有格子,它们能炸到的“列敌人”数量也是一样的。我们可以用一个数组colHits[]来缓存每一列当前段的敌人数量。

#include <vector> #include <algorithm> using namespace std; class Solution { public: int maxKilledEnemies(vector<vector<char>>& grid) { if (grid.empty() || grid[0].empty()) return 0; int m = grid.size(); int n = grid[0].size(); int result = 0; int rowHits = 0; // 缓存当前行这一段(两墙之间)的敌人数量 vector<int> colHits(n, 0); // 缓存每一列当前段的敌人数量 for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { // 1. 处理行:如果是行的开头,或者前一个是墙,就需要重新统计这一段行里的敌人 if (j == 0 || grid[i][j-1] == 'W') { rowHits = 0; // 向右扫描直到碰到墙或边界 for (int k = j; k < n && grid[i][k] != 'W'; ++k) { if (grid[i][k] == 'E') rowHits++; } } // 2. 处理列:如果是列的开头,或者上面一个是墙,就需要重新统计这一段列里的敌人 if (i == 0 || grid[i-1][j] == 'W') { colHits[j] = 0; // 向下扫描直到碰到墙或边界 for (int k = i; k < m && grid[k][j] != 'W'; ++k) { if (grid[k][j] == 'E') colHits[j]++; } } // 3. 只有当前位置是空位 '0' 时,才能放炸弹 if (grid[i][j] == '0') { result = max(result, rowHits + colHits[j]); } } } return result; } };

2511. 最多可以摧毁的敌人城堡数目

e摧毁的敌人城堡数目,所以我们返回 4 。
class Solution { public: int captureForts(vector<int>& forts) { int res = 0; int pre = -1; // 表示不存在 for(int i = 0; i < forts.size(); i++) { if(forts[i] != 0) { if(pre >= 0 && forts[i] != forts[pre]) // 1 和 -1 或者 -1 和 1出现 res = max(res, i - pre - 1); pre = i; } } return res; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 17:27:56

微信小程序 == rsa加解密工具

wxmp-rsa 1、简介 前端rsa加解密工具。 基于jsencrypt修改扩展功能。兼容小程序环境&#xff0c;压缩后60kb左右的大小&#xff0c;节省小程序空间。支持超长文本加解密。支持中文字符的加解密。 仓库地址 https://github.com/jiayc4215/wxmp-rsa2、安装 npm i wxmp-rsa …

作者头像 李华
网站建设 2026/4/22 17:27:54

安达发|精准排产,守护生命:医疗器械行业车间排产的数字化革命

在关乎人类生命健康的医疗器械制造领域&#xff0c;每一台设备、每一个部件的准时交付&#xff0c;都可能直接影响到患者的治疗与康复。这个行业以其严苛的质量法规&#xff08;如FDA、ISO 13485&#xff09;、复杂的生产工艺和极高的可追溯性要求而著称。在这样的背景下&#…

作者头像 李华
网站建设 2026/4/24 11:11:14

Spring MVC核心流程深度解析:从请求到响应的完美掌控

Spring MVC 核心流程深度解析&#xff1a;从请求到响应的完美掌控 Spring MVC 是 Spring 框架中处理 Web 请求的核心模块&#xff0c;基于 Model-View-Controller (MVC) 设计模式。它以 DispatcherServlet 为入口&#xff0c;实现从 HTTP 请求到响应的完整生命周期管理。下面从…

作者头像 李华
网站建设 2026/4/22 17:27:51

Java毕设选题推荐:基于springboot的游戏售卖商城系统基于SpringBoot+Vue的游戏装备交易商城系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/23 16:22:26

【时间之外】AI招聘这么干行不行?

目录 一、背景 二、目标 三、策略 1. 岗位与画像 2. 多元化渠道 3. 构建AI评估体系 4. 实施AI招聘流程 5. 持续优化 四、实施步骤 1. 准备 2. 策略 3. 执行 4. 优化 五、案例 六、总结与展望 一、背景 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&am…

作者头像 李华
网站建设 2026/4/18 23:33:11

Java毕设选题推荐:基于springboot的智慧生产安全系统安全巡检系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华