面试算法-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;
    }
}
相关推荐
NAGNIP4 小时前
一文搞懂树模型与集成模型
算法·面试
NAGNIP4 小时前
万字长文!一文搞懂监督学习中的分类模型!
算法·面试
技术狂人1684 小时前
工业大模型工程化部署实战!4 卡 L40S 高可用集群(动态资源调度 + 监控告警 + 国产化适配)
人工智能·算法·面试·职场和发展·vllm
D_FW4 小时前
数据结构第六章:图
数据结构·算法
a程序小傲5 小时前
京东Java面试被问:动态规划的状态压缩和优化技巧
java·开发语言·mysql·算法·adb·postgresql·深度优先
自学不成才5 小时前
深度复盘:一次flutter应用基于内存取证的黑盒加密破解实录并完善算法推理助手
c++·python·算法·数据挖掘
June`6 小时前
全排列与子集算法精解
算法·leetcode·深度优先
徐先生 @_@|||6 小时前
Palantir Foundry 五层架构模型详解
开发语言·python·深度学习·算法·机器学习·架构
夏鹏今天学习了吗7 小时前
【LeetCode热题100(78/100)】爬楼梯
算法·leetcode·职场和发展