1493.删掉一个元素以后全为1的最长子数组

简介: 1493.删掉一个元素以后全为1的最长子数组

题目:给一个二进制数组nums,从中删掉一个元素。

在删掉元素的结果数组中,返回最长的且只包含1的非空子数组的长度。

如果不存在这样的子数组,请返回0.

解题思路:典型的滑动窗口问题,可以通过遍历数组并使用两个指针来解决,一个指针代表窗口的开始,另一个指针代表窗口的结束。当窗口全为1时,尝试扩大窗口直到遇到0为止,并记录下此时窗口的最大长度。

class Solution{
    public int longestSubarray(int[] nums){
        int ans=0;
        int p0=0,p1=0;
        for(int num:nums){
            if(num==0){
                p1=p0;
                p0=0;            
            } else{
                ++p0;
                ++p1;            
            }       
            ans=Math.max(ans,p1);
        }
        if(ans==nums.length){
            --ans;        
        }    
        return ans;
    }
}


相关文章
|
7月前
|
存储 关系型数据库 MySQL
图解MySQL【日志】——Undo Log
Undo Log(回滚日志)是 MySQL 中用于实现事务原子性和一致性的关键机制。在默认的自动提交模式下,MySQL 隐式开启事务,每条增删改语句都会记录到 Undo Log 中。其主要作用包括:
241 0
|
SQL 关系型数据库 MySQL
MySQL的自增id会用完吗?用完怎么办?
MySQL的自增id会用完吗?用完怎么办?
511 0
|
存储 SQL 缓存
【MySQL】change buffer,buffer pool,redo log,bin log,undo log的作用
【MySQL】change buffer,buffer pool,redo log,bin log,undo log的作用
327 0
|
SQL BI 数据库
带你理解 只读事务(@Transactional(readOnly = true)
带你理解 只读事务(@Transactional(readOnly = true)
728 1
|
存储 Linux 调度
2023Linux C/C++全栈开发知识技术合集(基础入门到高级进阶)(上)
2023Linux C/C++全栈开发知识技术合集(基础入门到高级进阶)
|
C++ Python 容器
C++中pair用法
⭐pair的简介 pair是C++STL(标准模板库)中的一个现有容器,它将2个数据整合成一组数据,当我们类似需求的时候就可以使用到pair啦!pair其实有点像Python中字典中的键值对(Key-Value),一个Key对应着一个Value。pair的本质其实就是个结构体,它含有两个成员变量first和second。因为使用的是struct不是class,所以在定义后是可以直接使用pair中的成员变量的。 其标准库类型–pair类型定义在#include< utility > 头文件中
610 0
|
SQL 存储 关系型数据库
MySQL 主键自增也有坑?
MySQL 主键自增也有坑?
|
存储 SQL 关系型数据库
事务使用场景详解
事务使用场景详解
826 0
事务使用场景详解
|
存储 算法
【滑动窗口】滑窗模板,在小小的算法题里滑呀滑呀滑
【滑动窗口】滑窗模板,在小小的算法题里滑呀滑呀滑