目錄
一、題目內容
二、解題思路
三、代碼
一、題目內容
給定一個二進制陣列, 計算其中最大連續 1 的個數,
示例:
輸入:[1,1,0,1,1,1]
輸出:3
解釋:開頭的兩位和最后的三位都是連續 1 ,所以最大連續 1 的個數是 3.
提示:
輸入的陣列只包含 0 和 1 ,
輸入陣列的長度是正整數,且不超過 10,000,
二、解題思路
1.直接記錄長度然后每次比較大小即可;
2.滑動視窗,每次增加視窗長度,直到為0則記錄長度并比較當前最大的長度,然后重新從為1的地方開始記錄長度,如此反復比較即可;
三、代碼
class Solution:
def findMaxConsecutiveOnes1(self, nums: list) -> int:
count = 0
ans = 0
for num in nums:
if num == 1:
count += 1
ans = max(ans, count)
else:
count = 0
return ans
def findMaxConsecutiveOnes2(self, nums: list) -> int:
left, right = 0, 0
ans = 0
while right < len(nums):
if nums[right] == 1:
right += 1
else:
ans = max(ans, right - left)
right += 1
left = right
ans = max(ans, right - left)
return ans
if __name__ == '__main__':
s = Solution()
nums = [1, 1, 0, 1, 1, 1]
ans1 = s.findMaxConsecutiveOnes1(nums)
print(ans1)
ans2 = s.findMaxConsecutiveOnes2(nums)
print(ans2)
CSDN認證博客專家
深度學習
神經網路
Pytorch
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/261072.html
標籤:python
上一篇:爬取小說并保存到資料庫中
