标签:alt end inf 代码 ret har 维护 滑动窗口 subarray
2018-09-01 23:02:46
问题求解:
问题求解:
最开始的时候,一眼看过去就是一条 dp 嘛,保存每个数字结尾的长度和,最后求和就好,至于长度如何求,本题中需要用滑动窗口来维护。
写好代码后,发现其实并不需要真正申请一个1000长度的数组来对每个数字进行保存,直接求和就好。
public int numSubarrayProductLessThanK(int[] nums, int k) { int res = 0; int begin = 0; int cur = 1; for (int end = 0; end < nums.length; end++) { cur *= nums[end]; while (begin <= end && cur >= k) { cur /= nums[begin]; begin++; } if (end < begin) continue; res += end - begin + 1; } return res; }
动态规划-子数组乘积小于k的总个数 Subarray Product Less Than K
标签:alt end inf 代码 ret har 维护 滑动窗口 subarray
原文地址:https://www.cnblogs.com/TIMHY/p/9572048.html