[LeetCode] 485. Max Consecutive Ones
Given a binary array, find the maximum number of consecutive 1s in this array.
Example 1:
Input: [1,1,0,1,1,1] Output: 3 Explanation: The first two digits or the last three digits are consecutive 1s. The maximum number of consecutive 1s is 3.
Note:
- The input array will only contain
0
and1
. - The length of input array is a positive integer and will not exceed 10,000
最大连续1的个数。
给定一个二进制数组, 计算其中最大连续1的个数。
思路是追击型的two pointer,但是我们在实现的时候可以不需要用到指针,详细参见代码。这道题其实也是隐式的滑动窗口类型的题。
时间O(n)
空间O(1)
Java实现
1 class Solution { 2 public int findMaxConsecutiveOnes(int[] nums) { 3 // corner case 4 if (nums.length == 0 || nums == null) { 5 return 0; 6 } 7 8 // normal case 9 int max = 0; 10 int count = 0; 11 for (int i = 0; i < nums.length; i++) { 12 if (nums[i] == 1) { 13 count++; 14 max = Math.max(max, count); 15 } else { 16 count = 0; 17 } 18 } 19 return max; 20 } 21 }
JavaScript实现
1 /** 2 * @param {number[]} nums 3 * @return {number} 4 */ 5 var findMaxConsecutiveOnes = function (nums) { 6 let max = 0; 7 let count = 0; 8 for (let i = 0; i < nums.length; i++) { 9 if (nums[i] == 1) { 10 count++; 11 max = Math.max(max, count); 12 } else { 13 count = 0; 14 } 15 } 16 return max; 17 };
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步