面试算法-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;
    }
}
相关推荐
小猪咪piggy几秒前
【算法】leetcode100 堆、栈
算法
元亓亓亓4 分钟前
LeetCode热题100--70. 爬楼梯--简单
算法·leetcode·职场和发展
牛客企业服务4 分钟前
牛客AI面试蓝领案例:破解制造业招聘效率困局
人工智能·面试·职场和发展
一起养小猫6 分钟前
LeetCode100天Day3-判断子序列与汇总区间
java·数据结构·算法·leetcode
404未精通的狗19 分钟前
(数据结构)二叉树、二叉搜索树+简单的排序算法(考前速成版)
数据结构·算法·排序算法
太理摆烂哥24 分钟前
数据结构之并查集
数据结构
Knight_AL27 分钟前
CMS vs G1 GC 写屏障:拦截时机与漏标的根本原因
java·jvm·算法
YGGP27 分钟前
【Golang】LeetCode 75. 颜色分类
算法·leetcode
北山小恐龙30 分钟前
针对性模型压缩:YOLOv8n安全帽检测模型剪枝方案
人工智能·深度学习·算法·计算机视觉·剪枝
涛涛北京30 分钟前
【强化学习实验】- PPO
算法