首页 > 编程语言 > 详细

leetcode-713 乘积小于k的数组

时间:2019-07-21 00:53:25      阅读:89      评论:0      收藏:0      [点我收藏+]

leetcode-713 乘积小于k的数组

参考:负雪明烛

题目描述:

给定一个正整数数组 nums。找出该数组内乘积小于 k 的连续的子数组的个数。
注:这题和209题比较类似,但是在while判断的时候需要考虑一下

class Solution(object):
    def numSubarrayProductLessThanK(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: int
        """
        res = 0
        prod = 1
        l,r = 0, 0
        N = len(nums)
        while r < N:
            prod *= nums[r]
            # 需要注意这里的条件判断,特别是prod>=k 和res的操作
            # 必须让其满足条件之后,才能进行相应的计数操作
            while l<=r and prod >= k:
                prod /= nums[l]
                l += 1
            res += r-l + 1
            r += 1
        return res

leetcode-713 乘积小于k的数组

原文:https://www.cnblogs.com/curtisxiao/p/11219895.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!