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;
        }
    

      

  • 相关阅读:
    MySQL多表查询
    多表关联
    MySQL数据类型 约束
    初识数据库
    socker server和 event
    os 模块 和 os模块下的path模块
    sys 模块
    time 模块
    目录规范

  • 原文地址:https://www.cnblogs.com/hyserendipity/p/9572048.html
Copyright © 2011-2022 走看看