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

2511. 最多可以摧毁的敌人城堡数目 这题的关键在于抓住路径的结构限制,并把问题转化为寻找两个不同非 0 值之间被 0 填满的最大长度。数组遍历技巧滑动窗口的思想条件判断的严谨性如果你还用暴力方法,建议赶紧切换思路试试这版解法,简单清晰还高效!参考2511. 最多可以摧毁的敌人城堡数目 - 力扣(LeetCode) 阅读详情

Every day a leetcode

题目来源:2511. 最多可以摧毁的敌人城堡数目

解法1:模拟

遍历数组forts,每当遇到我们控制的城堡(forts[i] == 1),就:

  • 向左遍历一次,计算从当前位置向左能摧毁的敌人城堡数目
  • 向右遍历一次,计算从当前位置向右能摧毁的敌人城堡数目

每计算一次,就更新答案,遍历完成后就得到最多可以摧毁的敌人城堡数目。

代码:

/*
 * @lc app=leetcode.cn id=2511 lang=cpp
 *
 * [2511] 最多可以摧毁的敌人城堡数目
 */

// @lc code=start
class Solution
{
public:
    int captureForts(vector<int> &forts)
    {
        int n = forts.size();
        int ans = 0;
        for (int i = 0; i < n; i++)
        {
            if (forts[i] == 1)
            {
                // 向左遍历
                int left = i - 1;
                while (left >= 0 && forts[left] == 0)
                    left--;
                if (left >= 0 && forts[left] == -1)
                    ans = max(ans, i - left - 1);
                // 向右遍历
                int right = i + 1;
                while (right < n && forts[right] == 0)
                    right++;
                if (right < n && forts[right] == -1)
                    ans = max(ans, right - i - 1);
            }
        }
        return ans;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中n是数组forts的长度。

空间复杂度:O(1)

解法2:

代码:

在这里插入代码片

结果:

复杂度分析:

时间复杂度:O()

空间复杂度:O()

轰炸敌人,最多可以摧毁的敌人城堡数目 对于每一个空位置,进行一次bfs,从上下左右四个方向去寻找,这是岛屿问题的相似处理,但是这个题可以优化,因为横竖方向可以进行动规优化。:同理,对于同一列里、两个墙之间的所有格子,它们能炸到的“列敌人”数量也是一样的。:对于同一行里、两个墙之间的所有格子,它们能炸到的“行敌人”数量是一样的。都重新数一遍它所在的行和列有多少敌人。之后,重新计算当前这段的敌人数量。来缓存每一列当前段的敌人数量。 阅读详情

相关推荐

UE5 Metahuman与Blender手动绑定:ARKit面部动画实战对比

面部动画是角色动画领域的核心技术,其核心原理在于通过驱动面部骨骼或混合形状来模拟真实肌肉运动,从而赋予数字角色生命力。这项技术的价值在于极大地提升了虚拟角色的表现力与沉浸感,广泛应用于游戏开发、影视制作、虚拟现实和实时交互应用。在技术实现路径上,开发者常面临工业化集成方案与高度自定义方案的选择。本文聚焦于使用行业标准的ARKit 52个面部混合形状数据,深度对比了虚幻引擎Metahuman的工业化流程与Blender手动绑定方案在视觉保真度、工作流效率、性能开销和扩展性上的差异,为不同项目规模与技术需求的团

weixin_33901926的博客 449

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

leetcode 题目:2511.最多可以摧毁的敌人城堡数量

2301_76145947的博客 387

工业组态软件Intouch(单机版)入门{第一篇}

通俗来讲Intouch就是一个能将PLC里的信号显示在画面上的软件。

weixin_41571357的博客 1万+

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

给你一个长度为 n ,下标从 0 开始的整数数组 forts ,表示一些城堡。请你返回 最多 可以摧毁的敌人城堡数目。如果 无法 移动你的军队,或者没有你控制的城堡,请返回 0。输入:forts = [1,0,0,-1,0,0,0,0,1]当军队移动时,所有途中经过的敌人城堡都会被 摧毁。解释:由于无法摧毁敌人的城堡,所以返回 0。输入:forts = [0,0,1,-1]

qq_65101190的博客 334

避开这5个坑!ADNI数据库下载实操经验分享(含断点续传方案)

本文分享了ADNI数据库下载的5个常见陷阱及解决方案,包括高级搜索策略优化、断点续传技巧和数据完整性验证。特别针对大文件下载中断问题,提供了wget断点续传和分卷下载的实操方法,帮助研究者高效获取神经影像数据,避免重复下载和时间浪费。

git9versioner的博客 374

深入解析CRC16查表法:从原理到Modbus协议实践

本文深入解析了CRC16查表法的核心原理与实现,重点阐述了其“空间换时间”的优化思想。通过对比直接计算法,详细说明了查表法如何通过预计算表格将计算速度提升数十倍,并提供了完整的Modbus CRC16查表法代码生成、解析及实战避坑指南,帮助开发者在嵌入式及工业通信场景中高效实现可靠的数据校验。

weixin_29166013的博客 557

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

给你一个长度为 n ,下标从 0 开始的整数数组 forts ,表示一些城堡。当军队移动时,所有途中经过的敌人城堡都会被 摧毁。请你返回 最多 可以摧毁的敌人城堡数目。如果 无法 移动你的军队,或者没有你控制的城堡,请返回 0。

编程技术, 日益精进 354

STM32F103C8T6+HX711实战:从零打造智能体重秤(附OLED显示与语音播报)

本文详细介绍了基于STM32F103C8T6微控制器和HX711称重模块,从零构建智能体重秤的完整实战教程。内容涵盖硬件选型、系统架构、驱动编写、数据滤波校准算法,并实现了OLED显示与语音播报功能。该项目是嵌入式学习的综合性实践,尤其适合作为毕业设计课题,帮助开发者掌握传感器应用、数据处理及人机交互等核心技能。

weixin_28285943的博客 520

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

else if和 if 在变量改变的情况下很有不同。

想买很多漂亮衣服但是买不起的博客 207

闲置服务器之代理服务器篇

这台服务器是在阿里云免费白嫖的,天工开物计划,阿里给的300块无门槛优惠券,买了一台新加坡的境外服务器,288,刚刚抵扣完,因为是境外服务器,能够访问一些国内不能访问的网站,所以本文章仅从技术的角度来搭建代理服务器,使用时,请自觉遵守国家相关规定,如有任何违法行为,与本人无任何关系!!!。本文使用tinyproxy来搭建代理服务器。

m0_50281408的博客 2108

CATIA V6二次开发——如何利用CaptureToFile截屏

CaptureToFile 今天给大家分享一个很有趣的功能,如何利用CATIA自带的功能输出模型展示图? 先上方法: 方法本身并不难,只需要赋予格式及输出路径即可完成该功能。结果如下: 看到这样一张图片不禁让我陷入了沉思,怎么会这么丑???? 那么如何让这个简单的功能变得有趣,图片变得好看点呢? 第一步:背景换色 第二步:隐藏结构树 ...

WorkMan的博客 2986

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

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

qq_57438473的博客 639

SAP-ABAP: BP主数据完全指南:从基础到高阶应用

SAP-ABAP: BP主数据完全指南:从基础到高阶应用

baidu_35680696的博客 1649

LeetCode每日一题 2511. 最多可以摧毁的敌人城堡数目

给定一个整数数组forts表示城堡,其中 -1 表示无城堡,0 表示敌人城堡,1 表示你控制的城堡。要求找到一种策略,将你的军队从一个你控制的城堡位置移动到一个空的位置,期间只经过敌人的城堡,求最大摧毁敌人城堡的数量。

wxhzly__030的博客 371

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

Leetcode_2511. 最多可以摧毁的敌人城堡数目题解

一些记录,还有一些好玩的 389

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LeetCode刷题日记(2511. 最多可以摧毁的敌人城堡数目)

【代码】LeetCode刷题日记(2511. 最多可以摧毁的敌人城堡数目)

weixin_45401894的博客 162

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

【代码】LeetCode-2511-最多可以摧毁的敌人城堡数目。

Arbicoral的博客 644

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

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

Sugar_wolf的博客 241

【简单】2511. 最多可以摧毁的敌人城堡数目

原题链接:https://leetcode.cn/problems/maximum-enemy-forts-that-can-be-captured。

jake_xiao的博客 410

B.双指针——2511. 最多可以摧毁的敌人城堡数目

B.双指针——2511. 最多可以摧毁的敌人城堡数目解析

要努力去发光,而不是被照亮~ 518

2023-09-02 LeetCode每日一题(最多可以摧毁的敌人城堡数目)

每日一题练习,每一题都是修炼!

qq_56086076的博客 655

2511. Maximum Enemy Forts That Can Be Captured【数组,双指针】1450

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。

memcpy0的博客 184

2511 最多可以摧毁的敌人城堡数【leetcode每日一题系列】

小技巧:单指针遍历,记录状态。

qq_43413525的博客 103

2023-09-02力扣每日一题

阅读理解题,要从1到-1或-1到1,中间只能有0,求最多能有多少0。

Fei_WuYan的博客 3674
上一篇: 计算机图形学 | 实验六:旋转立方体
下一篇: 计算机图形学 | 实验七:完成摄像机类的创建
UestcXiye
博客等级 码龄8年 9032粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值