https://leetcode.com/problems/max-consecutive-ones/
你會得到一組陣列,請回傳陣列中最多有幾個1
相連
今天是很簡單的easy題目,只要一個一個檢查是不是1,是的話就紀錄次數,最後回傳紀錄中大的次數就好
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
ans = 0
count = 0
for i in nums:
if i == 1:
count += 1
ans = max(ans, count)
else:
count = 0
return ans
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
return max(map(len, (''.join(map(str, nums))).split('0')))
一行程式碼看起來就很酷,但是要知道他在幹嘛會比較麻煩
我們稍微拆開來看
下面這段是把陣列中的數字都轉成string
map(str, nums)
這段是把list
的內容合併起來變成字串
''.join(map(str, nums))
這段是把字串依照0
的位置切成多段
(''.join(map(str, nums))).split('0')
把剛剛切成多段的字串轉成他們的長度
map(len, (''.join(map(str, nums))).split('0'))
回傳最長的那個
return max(map(len, (''.join(map(str, nums))).split('0')))
如果覺得太簡單,可以挑戰進階題看看
連假最後一天,大家中秋快樂