面试算法-130-乘积小于 K 的子数组

题目

给定一个正整数数组 nums和整数 k ,请找出该数组内乘积小于 k 的连续的子数组的个数。

示例 1:

输入: nums = [10,5,2,6], k = 100

输出: 8

解释: 8 个乘积小于 100 的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。

需要注意的是 [10,5,2] 并不是乘积小于100的子数组。

题目

java 复制代码
class Solution {
    public int numSubarrayProductLessThanK(int[] nums, int k) {
        int n = nums.length;
        int left = 0;
        int right = 0;
        int mul = 1;
        int count = 0;
        while (left <= right && right < n) {
            mul *= nums[right++];
            while (left <= right && mul >= k) {
                mul /= nums[left++];
            }
            if (left < right) {
                count += right - left;
            }
        }
        return count;
    }
}
相关推荐
进击的圆儿5 小时前
分治算法_快速排序专题总结-----分治
算法·排序算法·分治·快排·大根堆·小根堆
前进之路95 小时前
Leetcode每日一练--35
算法·leetcode
渣哥5 小时前
对象居然不用自己创建?Spring 依赖注入机制的真相惊呆了!
javascript·面试·github
董建光d5 小时前
【深度学习】目标检测全解析:定义、数据集、评估指标与主流算法
深度学习·算法·目标检测
赵杰伦cpp5 小时前
list的迭代器
开发语言·数据结构·c++·算法·链表·list
~~李木子~~5 小时前
机器学习集成算法实践:装袋法与提升法对比分析
人工智能·算法·机器学习
绝无仅有6 小时前
面试真实经历某商银行大厂Java问题和答案总结(七)
后端·面试·github
微笑尅乐6 小时前
三种思路彻底掌握 BST 判断(递归与迭代全解析)——力扣98.验证二叉搜索树
算法·leetcode·职场和发展
绝无仅有6 小时前
面试真实经历某商银行大厂缓存Redis问题和答案总结(一)
后端·面试·github
闻缺陷则喜何志丹6 小时前
【动态规划】数位DP的原理、模板(封装类)
c++·算法·动态规划·原理·模板·数位dp