leetcode(刷题第一天)——485. 最大连续1的个数
数据结构
数组
485. 最大连续1的个数

解题思路:
首先得知道目的是什么?目的就是取出一个数组中最大连续1的个数
知道这个就肯定会有for循环进行遍历,也会知道肯定有一个用变量来实现的计数器
for循环是一个一个遍历的如果,遍历到的数等于1,计数器就+1
如果遍历到是0就把计数器的值赋给另一个变量来接收存储
最后返回的是他们两个遍历后最大的值。
考虑完这些之后就要将代码严谨化了
首先得判断传过来的值是否是空的,这个数组长度是否是0这样的情况
如果是就返回一个0获取其他的,比如:一个字符串或者是None
class Solution:
# 静态语句把nums定义为一个数组
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
# 判断nums是否为空或者nums的长度是否为0
if nums is None or len(nums) == 0:
return 0
# 统计每次碰到1就记录1的次数
count = 0
# 保存最终的结果,那个最大就保存到result里面去
result = 0
# 通過for循环遍历nums这个数组
for num in nums:
# 如果这个值是1,count就加1
if num == 1:
count += 1
# 如果是0,就找出谁是最大值进行保存,再将count清空重新遍历直到遍历完成
else:
# 这里考虑到最大值的问题就是为了防止出现,result被覆盖的情况
# 谁最大就存储那个,比如:result比count大就存储result
result = max(count, result)
count = 0
# 最后将最大值进行返回
return max(count, result)
if __name__ == "__main__":
a = Solution()
b = [1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1]
print(a.findMaxConsecutiveOnes(b))
如有看不懂或没有理解,请评论或私信我

浙公网安备 33010602011771号