import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型ArrayList * @param k int整型 * @return int整型 */ public int subarrayCnt (ArrayList<Integer> nums, int k) { // write code here int left =0,right=0; int mul =1; int num = 0;//记录满足条件的子数组个数 for(;right<nums.size();right++){ mul = mul*nums.get(right); while(left<=right && mul>=k){ mul = mul/nums.get(left++); } num+=right>=left?right-left+1:0; //每次右指针移动一次,子数组个数就增加right-left+1个(即以新增加元素为末尾的符合条件的子数组个数) } return num; } }