当前位置: 首页 > news >正文

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

给你一个长度为 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:
输入:forts = [1,0,0,-1,0,0,0,0,1]
输出:4
解释:

  • 将军队从位置 0 移动到位置 3 ,摧毁 2 个敌人城堡,位置分别在 1 和 2 。
  • 将军队从位置 8 移动到位置 3 ,摧毁 4 个敌人城堡。
    4 是最多可以摧毁的敌人城堡数目,所以我们返回 4 。

示例 2:
输入:forts = [0,0,1,-1]
输出:0
解释:由于无法摧毁敌人的城堡,所以返回 0 。

说简单点这道题就是求-1和1之间0最多有几个。

class Solution {
    public int captureForts(int[] forts) {
        
		int[] temp =new int[2];  //记录1或者-1以及对应索引
		int max = 0;   			 //记录0的个数
		for(int i=0;i<forts.length;i++){
			if(forts[i] == 1 || forts[i] == -1){
				if(temp[0]*forts[i]==-1){  
					int q = i - temp[1] -1;
					max = Math.max(max, q);
				}
				temp[0] = forts[i];
				temp[1] = i;
			}
		}
		return max;
    }
}

相关文章:

  • Redis五个使用场景
  • 安全的Sui Move是Web3大规模采用之路的基石
  • Flutter——最详细(CustomScrollView)使用教程
  • 魔行观察》一款免费的品牌/商业地产数据查询平台
  • Python常用视频编辑操作——读取与保存视频、更改帧数、拼接视频、视频语音合并、视频与图像互转等
  • 【学习笔记】RabbitMQ04:延迟队列的原理以及实现代码
  • ChatGPT AutoExpert:通过自定义指令,增强 GPT-4 和 GPT-3.5-Turbo 对话模型的功能
  • 28栈与队列-单调队列
  • Element UI打开表单自动验证问题的解决
  • 怎么把flac音频变为mp3?
  • 微信小程序使用本地存储方法
  • 【yolov5目标检测】使用yolov5训练自己的训练集
  • 小程序原生代码转uniapp
  • C++对象模型(13)-- 构造函数语义学:析构函数
  • Hadoop3教程(三):HDFS文件系统常用命令一览
  • 基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习高级应用
  • IDEA如何设置项目包名分级
  • 面试题:将 Bean 放入 Spring 容器中的方式有哪些 ?
  • (完全解决)latex如何设置某段文字向右对齐
  • HarmonyOS学习 -- ArkTS开发语言入门
  • 最火“五一”预订!小长假前两日多地接待游客量两位数增长,出境游订单井喷
  • 长三角议事厅| AI作曲时代:长三角如何奏响数字音乐乐章
  • 神十九都带回了哪些实验样品?果蝇等生命类样品已交付科学家
  • 王受文已任中华全国工商业联合会领导班子成员
  • “80后”杨占旭已任辽宁阜新市副市长,曾任辽宁石油化工大学副校长
  • 气候资讯|4月全球前沿气候科学研究&极端天气气候事件