给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
示例 1:
输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1]
输出:2
题解:
1.将nums列表中的每一项转换为字符串
2.将字符串中的每一项按0进行划分
3.将划分后的列表中的每一项计算其长度,返回最大长度值。
代码:
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
str1="".join(map(lambda x:str(x),nums))
list1=str1.split('0')
return max(map(lambda x:len(x),list1))
知识点:
- python中的map函数
1.定义:map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
2.作用:map函数例子:我们有一个元组列表[(‘a’,1),(‘b’,2),(‘c’,3),(‘d’,4)],我想在想把里边每个元组的第一项,即字母项提取出来构成一个新的列表。
vartuple = [('a',1),('b',2),('c',3),('d',4)]
list(map(lambda x:x[0],vartuple))
['a', 'b', 'c', 'd']
3.格式:map(function,list)
4.举例:
def f(x):
return x*x
print(list(map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]))) # Python中map无法直接显示,需要加list
- python中的lambda函数
1.定义:lambda函数是Python的内置函数,其功能主要是实现匿名函数的目的。匿名函数的优点就是简洁、轻量化。匿名函数无需起名,用完即可被回收,节约资源。
2.作用:对于一些比较抽象且只调用一两次的函数,使用lambda可以省略函数定义的步骤,减少代码量,使用代码整体更加精简。
3.格式:
(单参数)lambda x:x*2;
(多参数)lambda x,y : x+y
4.举例:
a = lambda x:x+1
a(5)
6
通常可以将map函数和lambda函数结合起来使用。
- 字符串分割中的split函数
1.定义:Python中split是一个内置函数,用来对字符串进行分割,分割后的字符串以列表形式返回。
2.语法:该函数的语法是“str.split(str=“”,num=string.count(str))”。
3.split()中如果没有参数,函数默认以空格,tab空格符,回车符等作为分割条件;
split(“/”)中有参数时,会以参数作为分割条件,把字符串进行分割,得到的每个分割段作为列表的元素返回。