程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

[零基礎-每日leetcode]No.485 兩數之和python

編輯:Python

給定一個二進制數組 nums , 計算其中最大連續 1 的個數。

示例 1:

輸入:nums = [1,1,0,1,1,1]
輸出:3
解釋:開頭的兩位和最後的三位都是連續 1 ,所以最大連續 1 的個數是 3.
示例 2:

輸入:nums = [1,0,1,1,0,1]
輸出:2

思路:題目確定連續數為1,則if判定語句為 i 是否為1。求最大數,則需要對比,需要創建兩個變量,一個是cur當前連續1的個數,另一個是res最大連續1的個數。當i向下遍歷,數字為1時加1,為0時,cur與max對比,(若cur大)將當前個數存入res中,cur清空。

class Solution(object):
def findMaxConsecutiveOnes(self, nums):
res = 0 # 最大個數
cur = 0 # 當前個數
for i in nums: # 向下遍歷
if i ==1: # 如果元素為1
cur += 1 # 當前個數+1
res = max(res, cur) # 和最大個數對比,將最大的存為res
else: # 如果與元素不為1,則不是連續,就清空cur
#(比如連續4次都為1,第5次是0,則跳到else語句,雖然清空cur,但上一次連續4次已通過if語句存入res)
cur = 0
return res

一些其他思路:審題時沒有看到要求為1,因此將題目理解為:

給定一個二進制數組 nums , 計算其中最大連續數字的個數。

個人思路是創建兩個指針,i和j,i從0開始,j從i + 1開始,對比兩者,如果相等,則cur+1,i、j指針向下移動,不等則清空0。報錯

class Solution(object):
def findMaxConsecutiveOnes(self, nums):
res = 0 # 最大個數
cur = 0 # 當前個數
i = 0
j = i + 1
for i in range(0, len(nums)): # 向下遍歷
if nums[i] == nums[j]:
cur += 1 # 當前個數+1
res = max(res, cur) # 和最大個數對比,將最大的存為res
j += 1
i += 1
else: # 如果與元素不為1,則不是連續,就清空cur
cur = 0
return res

求大神看看哪裡有問題


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved