首页 > 试题广场 >

乘积小于K的子数组数量

[编程题]乘积小于K的子数组数量
  • 热度指数:546 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的正整数数组 nums , 请你找出这个数组中乘积小于 k 的连续子数组的个数。

数据范围: , 数组中的值满足
示例1

输入

[10,5,3,7],100

输出

7

说明

八个子数组分别是
10
5
3
7
10 5
5 3
3 7
示例2

输入

[10,5,3,7],0

输出

0
package main
import _"fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @param k int整型 
 * @return int整型
*/
func subarrayCnt( nums []int ,  k int ) int {
    ans:=0
    for i:=0;i<len(nums);i++{
        tot:=1
        for j:=i;j<len(nums);j++{
            tot*=nums[j]
            if tot<k{
                ans++
            }else{
                break
            }
        }
    }
    return ans
}

发表于 2023-03-19 21:14:42 回复(0)