【力扣每日一题】2023.9.2 最多可以摧毁的敌人城堡数量

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

这道题难在阅读理解,题目看得我匪夷所思,错了好多个测试用例才明白题目说的是什么。

我简单翻译一下就是寻找1和-1之间0最多的数量,1和-1之间只能有0。

我们可以套两层循环,第一层for循环去寻找1,如果找到了1,那么我们开始在当前下标往左右两边寻找最近的-1,并且统计0的数量,需要注意的是如果先碰到了1,那么表示我们无法落脚,也就不能更新答案,因为题目说的我们只能在-1的地方落脚,并且1到-1之间只能有0。

在结束往右寻找的时候,我们可以把往右寻找的下标赋值给第一层循环的下标,因为我们结束往右寻找的时候,下标所在的位置要么是1要么是-1,赋值给第一层循环可以少遍历几次,不过题目中给的数据量比较小,所以这个小优化是可有可无的。

具体操作可以参考下面的代码和动图。

代码:

cpp 复制代码
class Solution {
public:
    int captureForts(vector<int>& forts) {
        int res=0;
        int n=forts.size();
        for(int i=0;i<n;i++){
            if(forts[i]==1){    //遇到了自己的城堡
                int t=0,index=i-1;
                while(index>=0){    //去寻找左边能摧毁的敌人城堡数量
                    if(forts[index]==1) break;  //先遇到自己的城堡则表示左边没有落脚点
                    if(forts[index]==-1){       //当遇到空地就结束寻找并更新答案
                        res=max(res,t);
                        break;
                    }
                    t++;index--;
                }
                t=0,index=i+1;
                while(index<n){     //去寻找右边能摧毁的敌人城堡数量
                    if(forts[index]==1) break;
                    if(forts[index]==-1){
                        res=max(res,t);
                        break;
                    }
                    t++;index++;
                }
                //i=index-1;    //小小优化一下,可有可无
            }
        }
        return res;
    }
};
相关推荐
John_ToDebug14 分钟前
Chromium base 库中的 Observer 模式实现:ObserverList 与 ObserverListThreadSafe 深度解析
c++·chrome·性能优化
科大饭桶15 分钟前
C++入门自学Day11-- String, Vector, List 复习
c语言·开发语言·数据结构·c++·容器
lxmyzzs38 分钟前
【图像算法 - 16】庖丁解牛:基于YOLO12与OpenCV的车辆部件级实例分割实战(附完整代码)
人工智能·深度学习·opencv·算法·yolo·计算机视觉·实例分割
点云SLAM41 分钟前
C++中内存池(Memory Pool)详解和完整示例
开发语言·c++·内存管理·内存池·new/delete·malloc/free
wow_DG1 小时前
【C++✨】多种 C++ 解法固定宽度右对齐输出(每个数占 8 列)
开发语言·c++·算法
Epiphany.5561 小时前
c++最长上升子序列长度
c++·算法·图论
Cx330❀2 小时前
【数据结构初阶】--排序(四):归并排序
c语言·开发语言·数据结构·算法·排序算法
余_弦2 小时前
区块链中的密码学 —— 密钥派生算法
算法·区块链
艾莉丝努力练剑3 小时前
【C语言16天强化训练】从基础入门到进阶:Day 1
c语言·开发语言·数据结构·学习
亲爱的非洲野猪3 小时前
令牌桶(Token Bucket)和漏桶(Leaky Bucket)细节对比
网络·算法·限流·服务