leetcode-713 乘积小于k的数组

Posted curtisxiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-713 乘积小于k的数组相关的知识,希望对你有一定的参考价值。

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的数组的主要内容,如果未能解决你的问题,请参考以下文章

*Leetcode 713. 乘积小于 K 的子数组

LeetCode 713 乘积小于K的子数组[双指针 滑动窗口] HERODING的LeetCode之路

⭐算法入门⭐《双指针》中等04 —— LeetCode 713. 乘积小于K的子数组

Leetcode 713 Subarray Product Less Than K (子数组乘积大于K的个数) (双指针)

刷题日记乘积小于K的子数组

刷题日记乘积小于K的子数组