
目录
1. 最大连续1的个数 I Max Consecutive Ones 🌟
2. 最大连续1的个数 II Max Consecutive Ones 🌟🌟
3. 最大连续1的个数 III Max Consecutive Ones 🌟🌟
🌟 每日一练刷题专栏 🌟
Golang每日一练 专栏
Python每日一练 专栏
C/C++每日一练 专栏
Java每日一练 专栏
对应的leetcode题号: 485、487、1004
1. 最大连续1的个数 I Max Consecutive Ones
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
示例 1:
输入:nums = [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1] 输出:2
提示:
- 1 <= nums.length <= 10^5
- nums[i]不是- 0就是- 1.
代码1:
class Solution:
    def findMaxConsecutiveOnes(self, nums):
        if not nums:
            return 0
        count = 0
        max_count = 0
        for i in range(len(nums)):
            if nums[i] == 1:
                count += 1
            else:
                max_count = max(max_count, count)
                count = 0
        max_count = max(max_count, count)
        return max_count
if __name__ == '__main__':
    s = Solution()
    nums = [1,1,0,1,1,1]
    print(s.findMaxConsecutiveOnes(nums))
    nums = [1,0,1,1,0,1]
    print(s.findMaxConsecutiveOnes(nums))代码2:
class Solution:
    def findMaxConsecutiveOnes(self, nums):
        res = 0
        i = 0
        j = len(nums)-1
        while i <= j:
            if nums[i] == 0:
                i += 1
            elif nums[j] == 0:
                j -= 1
            else:
                res += 1
                i += 1
                j -= 1
        return res
if __name__ == '__main__':
    s = Solution()
    nums = [1,1,0,1,1,1]
    print(s.findMaxConsecutiveOnes(nums))
    nums = [1,0,1,1,0,1]
    print(s.findMaxConsecutiveOnes(nums))
输出:
3
 2
2. 最大连续1的个数 II Max Consecutive Ones
给定一个二进制数组,你可以最多将 1 个 0 翻转为 1,找出其中最大连续 1 的个数。
示例 :
输入:nums = [1,0,1,1,0] 输出:4 解释:翻转第一个 0 可以得到最长的连续 1。 当翻转以后,最大连续 1 的个数为 4。
提示:
- 1 <= nums.length <= 10^5
- nums[i]不是- 0就是- 1.
代码:
python输出:
3. 最大连续1的个数 III Max Consecutive Ones
给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。
示例 1:
输入:nums = [1,1,1,0,0,0,1,1,1,1,0], k = 2 输出:6 解释:[1,1,1,0,0,1,1,1,1,1,1] 粗体数字从 0 翻转到 1,最长的子数组长度为 6。
示例 2:
输入:nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], k = 3 输出:10 解释:[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1] 粗体数字从 0 翻转到 1,最长的子数组长度为 10。
提示:
- 1 <= nums.length <= 10^5
- nums[i]不是- 0就是- 1
- 0 <= k <= nums.length
代码:
python输出:
🌟 每日一练刷题专栏 🌟
✨ 持续,努力奋斗做强刷题搬运工!
👍 点赞,你的认可是我坚持的动力!
🌟 收藏,你的青睐是我努力的方向!
✎ 评论,你的意见是我进步的财富!
☸ 主页:https://hannyang.blog.csdn.net/
|  | Golang每日一练 专栏 | 
|  | Python每日一练 专栏 | 
|  | C/C++每日一练 专栏 | 
|  | Java每日一练 专栏 | 



















