zoukankan      html  css  js  c++  java
  • 动态规划-子数组乘积小于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;
        }
    

      

  • 相关阅读:
    Cocos2d-x之绘制线条
    Cocos2d-x之绘制填充不规则多边形
    unittest
    检查代码错误和代码风格问题
    命名
    二进制数据
    python 后台运行
    分页
    编码
    格式化
  • 原文地址:https://www.cnblogs.com/hyserendipity/p/9572048.html
Copyright © 2011-2022 走看看