485.Max Consecutive Ones

给你一个二进制的数组,找出该数组中连续出现的1的最大值


例如:

	输入:[1,1,0,1,1,1]
	输出:3
	解释:前两位数字或后三位数字是连续的1。所以连续1的最大数量是3
	注意:
		1.输入的数组中仅包含0和1
		2.输入数组的长度为正整数,并且长度不超过10000
解法1:
 def findMaxConsecutiveOnes(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        count = 0
        maxLen = 0
        for i in nums:
            if i == 1:
                count += 1
            else:
                count = 0
            if count > maxLen:
                maxLen = count
        return maxLen
方法1.简单,快捷,直接在list上做处理。在leetcode上跑用时92ms,效率还可以
方法2:	maxLenth = 0
 	#python中将一个全部为int的list 转化为str的list
 	#1.nums = [str(i) for i in a]
 	nums = map(str,nums)
 	s = ''.join(nums)
 	slist = s.split("0")
 	for i in slist:
 		if len(i) > maxLenth:
 			maxLenth = len(i)
 	return maxLenth
该方法因为多了许多类型之间的转换,跑起来效率一般,用时166ms,在提交用户中算是比较差的。不过,上面list[int]转换为list[str]值得学习下,没准哪天用的到呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值