加载中...
1493-删掉一个元素以后全为 1 的最长子数组(Longest Subarray of 1's After Deleting One Element)
发表于:2021-12-03 | 分类: 中等
字数统计: 599 | 阅读时长: 3分钟 | 阅读量:

原文链接: https://leetcode-cn.com/problems/longest-subarray-of-1s-after-deleting-one-element

英文原文

Given a binary array nums, you should delete one element from it.

Return the size of the longest non-empty subarray containing only 1's in the resulting array. Return 0 if there is no such subarray.

 

Example 1:

Input: nums = [1,1,0,1]
Output: 3
Explanation: After deleting the number in position 2, [1,1,1] contains 3 numbers with value of 1's.

Example 2:

Input: nums = [0,1,1,1,0,1,1,0,1]
Output: 5
Explanation: After deleting the number in position 4, [0,1,1,1,1,1,0,1] longest subarray with value of 1's is [1,1,1,1,1].

Example 3:

Input: nums = [1,1,1]
Output: 2
Explanation: You must delete one element.

Example 4:

Input: nums = [1,1,0,0,1,1,1,0,1]
Output: 4

Example 5:

Input: nums = [0,0,0]
Output: 0

 

Constraints:

  • 1 <= nums.length <= 105
  • nums[i] is either 0 or 1.

中文题目

给你一个二进制数组 nums ,你需要从中删掉一个元素。

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

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

 

提示 1:

输入:nums = [1,1,0,1]
输出:3
解释:删掉位置 2 的数后,[1,1,1] 包含 3 个 1 。

示例 2:

输入:nums = [0,1,1,1,0,1,1,0,1]
输出:5
解释:删掉位置 4 的数字后,[0,1,1,1,1,1,0,1] 的最长全 1 子数组为 [1,1,1,1,1] 。

示例 3:

输入:nums = [1,1,1]
输出:2
解释:你必须要删除一个元素。

示例 4:

输入:nums = [1,1,0,0,1,1,1,0,1]
输出:4

示例 5:

输入:nums = [0,0,0]
输出:0

 

提示:

  • 1 <= nums.length <= 10^5
  • nums[i] 要么是 0 要么是 1

通过代码

高赞题解

a 存中间有一个“非1”的和,b 存连续1的和,遇 1 两数自增,遇“非1” a=b;b=0。
扫描过程保存最大的 a 值,最后处理一下全1特例即可。

class Solution {
    public int longestSubarray(int[] nums) {
        int ret = 0;
        int a = 0;
        int b = 0;
        int n = nums.length;
        for (int i = 0; i < n; ++i) {
            if (nums[i] == 1) {
                ++a;
                ++b;
                ret = Math.max(ret, a);
            } else {
                a = b;
                b = 0;
            }
        }
        if (ret == n) ret--;
        return ret;
    }
}

统计信息

通过次数 提交次数 AC比率
8392 14718 57.0%

提交历史

提交时间 提交结果 执行时间 内存消耗 语言
上一篇:
1492-n 的第 k 个因子(The kth Factor of n)
下一篇:
1494-并行课程 II(Parallel Courses II)
本文目录
本文目录