当前位置: 首页 > news >正文

LeetCode 713. 乘积小于 K 的子数组

713. 乘积小于 K 的子数组

 

【双指针】s表示前j到i的数字的乘积,当发现乘积大于等于k的时候,就把j向右移动,并且把s除掉个nums[j],这样得到的就是以i结尾的符合要求的数组的最大长度,比这个长度小的以i结尾的也都符合要求,所以每次求完之后把答案加上这个区间长度即可。

class Solution {public int numSubarrayProductLessThanK(int[] nums, int k) {int acc = 1, n = nums.length, ans = 0;for (int i = 0, j = 0; i < n; i++) {acc *= nums[i];while (j <= i && acc >= k) acc /= nums[j++];if (acc < k) {ans += (i - j + 1);}}return ans;}
}
class Solution {
public:int numSubarrayProductLessThanK(vector<int>& nums, int k) {int s = 1, n = nums.size(), ans = 0;for (int i = 0, j = 0; i < n; i++) {s *= nums[i];while (j <= i && s >= k) s /= nums[j++];if (s < k) ans += i - j + 1;}return ans;}
};

 

 


http://www.taodudu.cc/news/show-4752394.html

相关文章:

  • 笔记-跨域方式实现原理
  • 7.STL中string的一些超常用函数 (附习题)
  • GIT仓库分支迁移新仓库步骤
  • 《控制系统实验与综合设计》计控第三次(含程序和题目)
  • 一体化水处理设备有哪些
  • Linux的基础指令
  • Codeforces713D(二维RMQ)
  • 华为手机无法debug的问题
  • 网页引入腾讯视频小记
  • 通知单的长文本和合作伙伴功能获得
  • 实体鉴别GB/T 15843研究(二)——GB/T 15843.2采用对称加密算法
  • 基于低功耗蓝牙的手机APP(文末有整个工程的下载连接哦!)
  • 实体鉴别GB/T 15843研究(合集)
  • 区块链与数字货币之间的关系
  • .net 部署到服务端IIS,Process调用exe程序无法运行问题解决
  • Java与RabbitMQ(二)启动rabbitmq web管理后台插件
  • docker 镜像使用
  • 配置OpenStack准备环境
  • ElasticSearch - 简介
  • 思维导图软件对比
  • 【韩顺平JAVA】房屋出租系统
  • 日本九州攻略
  • 已知分布函数求概率密度例题_【考研数学】考试重点、难点和常考题型:?随机变量及其分布...
  • 【概率论】作业三
  • 贝叶斯课后习题(零)常用分布
  • 【概率论与数理统计】猴博士 笔记 p29-32 均匀分布、泊松分布、指数分布、几何分布
  • 怎样用matlab产生泊松分布随机数
  • 模拟台球运动
  • 【算法修炼】台球碰撞 C
  • c语言写台球游戏,OpenGL版 3D台球 (原创,Basic实现) 申精!
  • 网站快照被劫持怎么办?
  • 网站快照被篡改劫持怎么办
  • recv_contxt = std::string( (char*)recv_buffer+sizeof(Req),pReq->context_len-86);
  • typedef int(*P)(int )
  • BLE 协议栈之 主机透传
  • 安装LR11 时,安装Microsoft Visual c++2005 sp1运行时组件,就会提示命令行选项语法错误,键入“命令/?”可获取帮肋信息...