Leetcode-485 最大连续 1 的个数

作者: itbird01 | 来源:发表于2021-09-27 06:55 被阅读0次

485. 最大连续 1 的个数

解题思路

1.用于双指针技巧
2.快慢指针初始指向数组初始位置,在遇到0之前,快指针一直向后移动,慢指针不动
3.遇到0,快指针停止,此时计算位置差值,记录下来
4.快慢指针同时移动到此时0的下一位置,开始2~3,直至末尾
5.过程中,对每次记录的值与之前max做对比,最终返回max
6.末尾也可能是1,所以最终还需做一次max、sfast-slow判断

解题遇到的问题

1.用双指针的思想去解题

##解法1
class Solution {
    public static int findMaxConsecutiveOnes(int[] nums) {
        int slow = 0, sfast = 0, max = 0;
        while (sfast < nums.length) {
            if (nums[sfast] == 1) {
                sfast++;
            } else {
                max = Math.max(sfast - slow, max);
                sfast++;
                slow = sfast;
            }
        }
        max = Math.max(sfast - slow, max);
        return max;
    }
}

相关文章

网友评论

    本文标题:Leetcode-485 最大连续 1 的个数

    本文链接:https://www.haomeiwen.com/subject/uxxygltx.html