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

2023-09-02每日一题

一、题目编号

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

二、题目链接

点击跳转到题目位置

三、题目描述

给你一个长度为 n ,下标从 0 开始的整数数组 forts ,表示一些城堡。forts[i] 可以是 -1 ,0 或者 1 ,其中:

  • -1 表示第 i 个位置 没有 城堡。

  • 0 表示第 i 个位置有一个 敌人 的城堡。

  • 1 表示第 i 个位置有一个你控制的城堡。
    现在,你需要决定,将你的军队从某个你控制的城堡位置 i 移动到一个空的位置 j ,满足:

  • 0 <= i, j <= n - 1

  • 军队经过的位置 只有 敌人的城堡。正式的,对于所有 min(i,j) < k < max(i,j) 的 k ,都满足 forts[k] == 0 。
    当军队移动时,所有途中经过的敌人城堡都会被 摧毁

请你返回 最多 可以摧毁的敌人城堡数目。如果 无法 移动你的军队,或者没有你控制的城堡,请返回 0 。

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

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

  • 1 <= forts.length <= 1000
  • -1 <= forts[i] <= 1

四、解题代码

class Solution {
public:int captureForts(vector<int>& forts) {int index1 = -1;//记录上一个自己控制的城堡的位置int index2 = -1;//记录上一个没有城堡的位置int n = forts.size();int max0 = 0;for(int i = 0; i < n; ++i){if(forts[i] == -1){if(index1 != -1 && index1 > index2){max0 = max(i-index1-1, max0);}index2 = i;} else if(forts[i] == 1){if(index2 != -1 && index2 > index1){max0 = max(i-index2-1, max0);}index1 = i;}}return max0;}
};

五、解题思路

(1) 遍历一遍,需要记录的是上一个自己控制的城堡的位置index1,上一个没有城堡的位置index2。

(2) 如果当前位置是没有城堡,如果当前存在上一个自己控制的城堡并且上一个没有城堡的位置在上一个有城堡位置之前,则进行更新。

(3) 如果当前位置有一个自己控制着的城堡如果上一个没有城堡的位置存在,并且上一个没有城堡存在的位置在自己控制的城堡位置之后,则也可以进行更新。

(4) 最后返回结果即可。

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

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

相关文章

Burp插件HaE与Authz用法

HaE与Authz均为BurpSuite插件生态的一员&#xff0c;两者搭配可以避免“越权”、“未授权”两类漏洞的重复测试行为。&#xff08;适用于业务繁杂&#xff0c;系统模块功能多的场景&#xff09; 两个插件都可以在store里安装 安装完后&#xff0c;点击Filter Settings勾选Sho…

第64步 深度学习图像识别:多分类建模误判病例分析(Pytorch)

基于WIN10的64位系统演示 一、写在前面 上期我们基于TensorFlow环境介绍了多分类建模的误判病例分析。 本期以健康组、肺结核组、COVID-19组、细菌性&#xff08;病毒性&#xff09;肺炎组为数据集&#xff0c;基于Pytorch环境&#xff0c;构建SqueezeNet多分类模型&#xf…

业务需要咨询?开发遇到 bug 想反馈?开发者在线提单功能上线!

大家是否遇到过下列问题—— 在开发的时候&#xff0c;遇到 bug 需要反馈… 有合作意向的时候&#xff0c;想更多了解业务和相关产品… 在接入的时候&#xff0c;需要得到专业技术支持… 别急&#xff0c;荣耀开发者服务平台在线提单功能上线了~ 处理问题分类说明&#xff1…

C语言---位域(位段)

位域&#xff08;位段&#xff09; 1、位域定义&#xff1a; 有些数据在存储时并不需要占用一个完整的字节&#xff0c;只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态&#xff0c;用 0 和 1 表示足以&#xff0c;也就是用一个二进位。正是基于这种考虑&…

xxl-job快速使用

目录 官方文档 具体操作一下 为什么从github上拉取项目后这些包的颜色都没有变呢?

Mongoose populate实现多表关联存储与查询

使用Mongoose populate实现多表关联与查询 mongodb不是传统的关系型数据库&#xff0c;我们可以使用monogoose方便的将多个表关联起来&#xff0c;实现一对多、多对多的数据表存储和查询功能。 本文已最常见的一对多关系模型&#xff0c;介绍简单的数据模型定义、存储、查询。 …

MIT6.S081实验环境搭建

MIT6.S081 lab 环境搭建 本文参考了MIT的官方指南和知乎文章环境搭建 step1 首先需要一个ubuntu20.04的系统&#xff0c;我使用的是vscode的WSL2连接的ubuntu20.04&#xff0c;使用virtual box建一个ubuntu20.04的虚拟机应该也可以。 可以用 lsb_release -a 查看一下自己ub…

Java stream求和以及mapToDouble sum精度丢失解决办法

在 Java 8 中&#xff0c;Stream.reduce()合并流的元素并产生单个值。 基本数据类型 和 包装类型 的一位数组求和 package test day1;import java.util.Arrays;public class Test {public static void main(String[] args) {// 基本数据类型 int long doubleint[] arr2 ne…

对可再生能源和微电网集成研究的新控制技术和保护算法进行基线和测试及静态、时域和频率分析研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

基于React实现:弹窗组件与Promise的有机结合

背景 弹窗在现代应用中是最为常见的一种展示信息的形式&#xff0c;二次确认弹窗是其中最为经典的一种。当我们在React&#xff0c;Vue这种数据驱动视图的前端框架中渲染弹窗基本是固定的使用形式。 使用方式&#xff1a;创建新的弹窗组件&#xff0c;在需要弹窗的地方引用并…

【系统设计系列】 回顾可扩展性

系统设计系列初衷 System Design Primer&#xff1a; 英文文档 GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. 中文版&#xff1a; https://github.com/donnemart…

【MySQL】mysql | 数据量统计

一、概览 1、统计数据库信息 2、主要指标涉及&#xff1a; 数据表数量/字段总量/存储条数/存储量 二、命令 1、数据表数量 SELECT COUNT(*) FROM information_schema.tables WHERE table_schema 库名; 某个库中&#xff0c;有多少个表 ~~ 2、字段总量 selectsum(FIELD_COUNT…

平面设计的三大基本元素 优漫动游

平面设计需要美术基础&#xff0c;有美术基础的新人往往能更快完成平面设计岗的转行&#xff0c;在专业培训机构内讲师授课时也会从平面设计的基础——三大基本元素开始。今天就跟大家具体介绍一下平面设计的三大基本元素&#xff0c;让大家知道到底都有哪些。 平面设计的三…

关于c语言中对齐用法,控制精度,字符与字符串解释,(04,02,0004)形式的写法

一&#xff1a;宽度精度 以整形举例&#xff1a; 用法%d 对齐中有宽度和精度参数设置 %(x1).(x2)d 其中x1就是宽度设置(固定长度) x2就是精度设置(保留几位小数) 特殊的不能直接赋值参数&#xff0c;需要间接赋值 例子&#xff1a; #includ…

leetcode做题笔记119. 杨辉三角 II

给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 思路一&#xff1a;模拟题意 int* getRow(int rowIndex, int* returnSize){int* ret malloc(sizeof(int)*(rowIndex1));ret[0]…

【React】React学习:从初级到高级(三)

3 状态管理 随着应用不断变大&#xff0c;应该更有意识的去关注应用状态如何组织&#xff0c;以及数据如何在组件之间流动。冗余或重复的状态往往是缺陷的根源。 3.1 用State响应输入 3.1.1 声明式地考虑UI 总体步骤如下&#xff1a; 定位组件中不同的视图状态 确定是什么…

C++零碎记录(四)

6. 深拷贝与浅拷贝 ① 浅拷贝&#xff1a;简单的赋值拷贝操作。 ② 深拷贝&#xff1a;在堆区重新申请空间&#xff0c;进行拷贝操作。 ③ 浅拷贝&#xff0c;如下图所示&#xff0c;带来的问题就是堆区的内存重复释放。 ④ 深拷贝&#xff0c;如下图所示&#xff0c;在堆区…

深度学习-4-二维目标检测-YOLOv5源码测试与训练

本文采用的YOLOv5源码是ultralytics发行版3.1 YOLOv5源码测试与训练 1.Anaconda环境配置 1.1安装Anaconda Anaconda 是一个用于科学计算的 Python 发行版&#xff0c;支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。 官方网址下载安装包&…

pdf怎么编辑文字?了解一下这几种编辑方法

pdf怎么编辑文字&#xff1f;PDF文件的普及使得它成为了一个重要的文件格式。然而&#xff0c;由于PDF文件的特性&#xff0c;它们不可直接编辑&#xff0c;这就使得PDF文件的修改变得比较麻烦。但是&#xff0c;不用担心&#xff0c;接下来这篇文章就给大家介绍几种编辑pdf文字…

(leetcode1654,广搜)到达家的最少跳跃次数-------------------Java实现

&#xff08;leetcode1654&#xff09;到达家的最少跳跃次数-------------------Java实现 题目表述 某个 bug 的家位于 x 轴上的位置x。帮助他们从位置到达那里0。 bug按照以下规则跳转&#xff1a; 它可以向前&#xff08;向右&#xff09;精确跳跃a位置。 它可以精确地向…