动态规划-子数组乘积小于k的总个数 Subarray Product Less Than K

Posted hyserendipity

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划-子数组乘积小于k的总个数 Subarray Product Less Than K相关的知识,希望对你有一定的参考价值。

2018-09-01 23:02:46

问题求解:

问题求解:

最开始的时候,一眼看过去就是一条 dp 嘛,保存每个数字结尾的长度和,最后求和就好,至于长度如何求,本题中需要用滑动窗口来维护。

很好的题目,将滑动窗口算法和动态规划巧妙的结合了起来。

    public int numSubarrayProductLessThanK(int[] nums, int k) {
        if (k <= 1) return 0;
        int res = 0;
        int begin = 0;
        int cur = 1;
        for (int end = 0; end < nums.length; end++) {
            cur *= nums[end];
            while (cur >= k) {
                cur /= nums[begin];
                begin++;
            }
            res += end - begin + 1;
        }
        return res;
    }

  

 

以上是关于动态规划-子数组乘积小于k的总个数 Subarray Product Less Than K的主要内容,如果未能解决你的问题,请参考以下文章

191. 乘积最大子序列(两个最值型动态规划)

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

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

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

713. 乘积小于K的子数组

python-leetcode713-双指针乘积小于k的子数组