面试算法-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;
    }
}
相关推荐
m0_6174939414 分钟前
Python OpenCV 分水岭算法(Watershed)详解与实战
python·opencv·算法
海带紫菜菠萝汤14 分钟前
企业批量PDF翻译方案:从选型到部署的完整指南
人工智能·算法·pdf
贵慜_Derek30 分钟前
vLLM-05|MLA、Compressor、Indexer 与 SWA:Flash 注意力栈在 vLLM 里怎么落地
人工智能·算法·llm
冻柠檬飞冰走茶31 分钟前
PTA基础编程题目集 7-13 日K蜡烛图(C语言实现)
c语言·开发语言·数据结构·算法
Databend39 分钟前
从全表排序到概率统计:Databend 如何用 KLL、Top-N 与 CMS 改进基数估计
大数据·数据库·算法
Revolution6142 分钟前
数组本身没有 map,为什么还能直接调用:原型链怎样查找属性
前端·javascript·面试
未秃头的程序猿42 分钟前
JDK 26的Value Class,我做了个性能测试,结果出乎意料
java·后端·面试
imuliuliang1 小时前
分治法在大数据计算中的并行化应用探索7
算法
夜不会漫长1 小时前
数据结构:栈和队列(1)
数据结构
Lsir10110_1 小时前
【力扣hot100】矩阵题通关复盘
算法·leetcode·矩阵