首页 > 编程语言 >【从零开始的LeetCode-算法】713. 乘积小于 K 的子数组

【从零开始的LeetCode-算法】713. 乘积小于 K 的子数组

时间:2024-10-27 21:16:34浏览次数:7  
标签:10 nums int res 713 ++ 从零开始 数组 LeetCode

给你一个整数数组 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 的子数组。

示例 2:

输入:nums = [1,2,3], k = 0
输出:0

提示: 

  • 1 <= nums.length <= 3 * 10^4
  • 1 <= nums[i] <= 1000
  • 0 <= k <= 10^6

我的解答:

class Solution {
    public int numSubarrayProductLessThanK(int[] nums, int k) {
        int res = 0;
        for(int i = 0; i < nums.length; i++){
            // 如果nums[i]大于等于k,则跳过以该值为第一元素的所有子数组
            if(nums[i] >= k) continue;
            res++;
            int prod = nums[i];
            for(int j = i + 1; j < nums.length; j++){
                prod *= nums[j];
                if(prod >= k) break;
                res++;
            }
        }
        return res;
    }
}

标签:10,nums,int,res,713,++,从零开始,数组,LeetCode
From: https://blog.csdn.net/qq_40878316/article/details/143274604

相关文章

  • 【从零开始的LeetCode-算法】649. Dota2 参议院
    Dota2的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇)Dota2参议院由来自两派的参议员组成。现在参议院希望对一个Dota2游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位......
  • leetCode-深度优先遍历
    岛屿数量深度优先遍历classSolution{publicintnumIslands(char[][]grid){intxlen=grid[0].length;intylen=grid.length;intcount=0;for(intx=0;x<xlen;x++){for(inty=0;y<ylen;y++){......
  • leetCode-双指针
     移动零classSolution{publicvoidmoveZeroes(int[]nums){intn=nums.length;intslow=0;intfast=0;while(fast<n){if(nums[fast]!=0){nums[slow++]=nums[fast++];......
  • leetcode每日一题:3181.执行操作可获得的最大总奖励 II
     题干:读本文前,请先弄懂上一篇中的内容,因为这是对上一篇内容的优化:3180.执行操作可获得的最大总奖励I明白上篇的,访问值的影响、复制、上下行之间的关系和算法后可继续看:上一篇中,我们用二维数组,第二维表示了状态空间。但是,在今日的题目中,提交不行,因为占用的空间太太太......
  • LeetCode 3181. 执行操作可获得的最大总奖励 II
    1classSolution{2public:3intmaxTotalReward(vector<int>&rewardValues){4intm=ranges::max(rewardValues);5unordered_set<int>s;6for(intv:rewardValues){7if(s.contains(v))......
  • 从零开始学五笔(四):竖区字根
    讲解格式:先介绍按键的区位号、口诀内容、口诀说明然后列每个字根能组成什么汉字,难拆字将用中括号标出‍H键区位号:21口诀:目具上止卜虎皮,走字底说明:“目”是一个字根“具”值得是去掉下面两点的上半部分上,止,卜都是一个字根虎皮:两个字根,指的是“虎”和“皮”......
  • 从零开始学五笔(五):撇区字根
    讲解格式:先介绍按键的区位号、口诀内容、口诀说明然后列每个字根能组成什么汉字,难拆字将用中括号标出‍T键区位号:31口诀:禾竹一撇双人立,反文条头共三一说明:禾:一个字根竹:指的是竹字头⺮一撇:作为撇区的第一个键,有一个字根为丿双人立:双人旁彳反文:指的是反......
  • 从零开始学五笔(七):折区字根
    讲解格式:先介绍按键的区位号、口诀内容、口诀说明然后列每个字根能组成什么汉字,难拆字将用中括号标出‍N键区位号:51口诀:已半巳满不出己,左框折尸心和羽说明:已半巳满不出己:指的是“已”,“巳”,“己”三个字的不同之处,“已”字半封口,“巳”字全封口左框:之前说过右框“......
  • 从零开始学五笔(六):捺区字根
    讲解格式:先介绍按键的区位号、口诀内容、口诀说明然后列每个字根能组成什么汉字,难拆字将用中括号标出‍Y键区位号:41口诀:言文方广在四一,高头一捺谁人去说明:言:字根,还有个变体为言字旁“讠”文,方,广,都是字根高头:指的是“高”字的上半部分:亠(也叫京字头)和一个变体(也叫高......
  • 从零开始学五笔(一):概述
    五笔是什么?应该学吗?难学吗?怎么学?‍前言开始学习五笔之前,建议先看看我之前写的几篇关于输入法的文章(在页面底部有个合集)。本五笔教程会详细讲解如下内容:概述:先简单理解下什么是五笔,其原理是什么,应不应该学,难不难学,选择什么输入法字根:字根是五笔的基础,可以说掌握了字根就......