题目
给定一个二进制数组 nums
, 计算其中最大连续 1
的个数。
示例 1:
输入:nums = [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1] 输出:2
解法1
嗯,速度有进步
我感觉我想出这个思路还是挺快的,两个指针找连续1的头尾,相减得到个数。时间复杂度是O(n),但是好像也不是最快的解法。啊要去学习一下。
解法2
这个思路我觉得其实挺好的,但时间还是2ms。通过累加的方式,因为题目中已经提示了所有的数字不是0就是1,遇到0就清零,遇到1就累加。我觉得比上一种更加清晰。不会感觉有很多if情况要考虑。
解法3
滑动窗口解法。移动窗口的左右两端。其实我感觉思路和第一种很像,但是由于,他的if语句只有为0的时候进入了,为1的时候不用进入判断语句,所以相同时间复杂度下更省时间,太妙了。
标签:Java,nums,复杂度,示例,个数,连续,485,leetcode,解法 From: https://blog.csdn.net/m0_73184257/article/details/143806920