[Swift]LeetCode485. 最大连续1的个数 | Max Consecutive Ones
发布时间:2020-12-14 05:03:20 所属栏目:百科 来源:网络整理
导读:Given a binary array,find the maximum number of consecutive 1s in this array. Example 1: Input: [1,1,1]Output: 3Explanation: The first two digits or the last three digits are consecutive 1s. The maximum number of consecutive 1s is 3.? Note
Given a binary array,find the maximum number of consecutive 1s in this array. Example 1: Input: [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:
给定一个二进制数组, 计算其中最大连续1的个数。 示例 1: 输入: [1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意:
?56ms 1 class Solution { 2 func findMaxConsecutiveOnes(_ nums: [Int]) -> Int { 3 if nums.count == 1 && nums[0] == 1{ 4 return 1 5 } 6 var count = 0 7 var res = 0 8 9 for i in 0..<nums.count { 10 if(nums[i] == 1) { count = count + 1 }//遇1则加 11 if(count > res) { res = count }//判断是否大于当前最大连续值 12 if(nums[i] == 0) { count = 0 }//遇0则置为0 13 } 14 return res 15 } 16 } 64ms 1 class Solution { 2 func findMaxConsecutiveOnes(_ nums: [Int]) -> Int { 3 var count = 0 4 var maxcount = 0 5 for num in nums { 6 if num == 1 { 7 count = count + 1 8 maxcount = max(count,maxcount) 9 } else { 10 count = 0 11 } 12 } 13 14 return maxcount 15 } 16 } 76ms 1 class Solution { 2 func findMaxConsecutiveOnes(_ nums: [Int]) -> Int { 3 var res = 0 4 var currentCount = 0 5 6 for num in nums { 7 if num == 1 { 8 currentCount += 1 9 } else { 10 currentCount = 0 11 } 12 if currentCount > res { 13 res = currentCount 14 } 15 } 16 17 return res 18 } 19 } 80ms 1 class Solution { 2 func findMaxConsecutiveOnes(_ nums: [Int]) -> Int { 3 var result: Int = 0 4 var count: Int = 0 5 for num in nums { 6 if num != 1{ 7 if count > result{ 8 result = count 9 } 10 count = 0 11 }else{ 12 count += 1 13 } 14 } 15 return max(count,result) 16 } 17 }
312ms
1 class Solution { 2 func findMaxConsecutiveOnes(_ nums: [Int]) -> Int { 3 var start = -1 4 var maxLength = 0 5 6 for i in 0 ..< nums.count { 7 switch (nums[i],start) { 8 case (1,-1): 9 start = i 10 case (1,_),(0,-1): 11 break 12 case (0,_): 13 maxLength = max(maxLength,i - start) 14 start = -1 15 default: 16 break 17 } 18 } 19 20 if start >= 0 { 21 maxLength = max(maxLength,nums.count - start) 22 } 23 24 return maxLength 25 } 26 } Runtime:?328 ms
Memory Usage:?19.2 MB
1 class Solution { 2 func findMaxConsecutiveOnes(_ nums: [Int]) -> Int { 3 var count = 0 4 var returnNum = 0 5 6 for num in nums { 7 count = (count + 1) * num 8 returnNum = max(returnNum,count) 9 } 10 11 return returnNum 12 } 13 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |