当前位置:网站首页>[算法] 剑指offer2 golang 面试题9:乘积小于k的子数组

[算法] 剑指offer2 golang 面试题9:乘积小于k的子数组

2022-07-06 09:18:00 邓嘉文Jarvan

[算法] 剑指offer2 golang 面试题9:乘积小于k的子数组

题目1:

在这里插入图片描述

思路1: 滑动窗口

代码

func numSubarrayProductLessThanK(nums []int, k int) int {
    
    //start: 10:28,... end 11.23
    //思路1: 滑动窗口
    //参数处理
    if len(nums) == 0 || k <= 0 {
    
        return 0
    }

    //滑动窗口
    res := 0
    left,right,product := 0,0,1
    for ;right < len(nums);right++ {
    
        product *= nums[right]
        for left <= right && product >= k {
    
            product /= nums[left]
            left ++
        }
        if left <= right {
    
            res += right-left +1
        }
    }
    return res
}

测试

原网站

版权声明
本文为[邓嘉文Jarvan]所创,转载请带上原文链接,感谢
https://jarvan.blog.csdn.net/article/details/123609846