📌  相关文章
📜  查询以查找仅由1组成的最长子数组的长度(1)

📅  最后修改于: 2023-12-03 15:10:47.613000             🧑  作者: Mango

查询以查找仅由1组成的最长子数组的长度

简介

给定一个整数数组,找到最长的由1组成的子数组的长度。

方法

我们可以使用一个计数器变量 count 来统计1的个数,以及两个指针 startend 来表示一个子数组。

遍历整个数组,如果遇到 1,count 变量加 1;如果遇到 0,我们现在需要检查一下我们得到的当前最长的子数组长度是否比之前的更长,如果是,则更新结果,否则保持不变。

代码如下:

def find_max_len(arr):
    n = len(arr)

    count = 0
    max_len = 0

    for i in range(n):
        if arr[i] == 1:
            count += 1
        else:
            max_len = max(max_len, count)
            count = 0

    max_len = max(max_len, count)

    return max_len
测试

现在我们来测试一下我们的程序:

arr = [1, 1, 0, 1, 1, 1, 0, 1, 1]

print("最长的由1组成的子数组长度为:", find_max_len(arr))

输出结果为:

最长的由1组成的子数组长度为: 3
总结

本文介绍了一种查询以查找仅由1组成的最长子数组的长度的方法。我们使用一个计数器变量 count 来统计1的个数,以及两个指针 startend 来表示一个子数组。遍历整个数组,如果遇到 1,count 变量加 1;如果遇到 0,我们现在需要检查一下我们得到的当前最长的子数组长度是否比之前的更长,如果是,则更新结果,否则保持不变。