面试算法-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;
    }
}
相关推荐
HarmonLTS12 小时前
Python人工智能深度开发:技术体系、核心实践与工程化落地
开发语言·人工智能·python·算法
a程序小傲12 小时前
京东Java面试被问:RPC调用的熔断降级和自适应限流
java·开发语言·算法·面试·职场和发展·rpc·边缘计算
一分之二~12 小时前
二叉树--层序遍历(迭代和递归)
数据结构·c++·算法·leetcode
zl_vslam13 小时前
SLAM中的非线性优-3D图优化之绝对位姿SE3约束右扰动(十七)
人工智能·算法·计算机视觉·3d
Cestb0n13 小时前
某果app 加密校验算法逆向分析
python·算法·逆向安全
机器学习之心13 小时前
MATLAB基于近红外光谱检测的菠萝含水率预测(多种预处理+PLS)
人工智能·算法·matlab·近红外光谱检测
程序员-King.13 小时前
day166—递归—多边形三角剖分的最低得分(LeetCode-1039)
算法·leetcode·深度优先·动态规划·递归
夏鹏今天学习了吗13 小时前
【LeetCode热题100(94/100)】下一个排列
算法·leetcode·职场和发展
AI科技星13 小时前
光的几何起源:从螺旋时空到量子现象的完全统一
开发语言·人工智能·线性代数·算法·机器学习
q_354888515314 小时前
机器学习:Python地铁人流量数据分析与预测系统 基于python地铁数据分析系统+可视化 时间序列预测算法 ✅
大数据·人工智能·python·算法·机器学习·信息可视化·数据分析