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

机械免费网站制作ppt代写平台

机械免费网站制作,ppt代写平台,东莞市建设安监监督网站首页,陕西省住房和城乡建设厅执业资格注册中心网站1 题目描述 给定一个下标从0开始的数组nums,以及整数modulo和k。找出并统计数组中趣味子数组的数目: 在范围[l,r]内,设cnt为满足nums[i]%modulok的索引i的数量,并且cnt%modulok。子数组是数组中的一个连续非空的元素序列。 其中一…

1 题目描述

  给定一个下标从0开始的数组nums,以及整数modulok。找出并统计数组中趣味子数组的数目:

  • 在范围[l,r]内,设cnt为满足nums[i]%modulo==k的索引i的数量,并且cnt%modulo==k
  • 子数组是数组中的一个连续非空的元素序列。

  其中一个示例如下:
1

2 题目分析及解决

  考虑[0,i]中满足nums[i]%modulo==k的下标i的数量,设为sum[i]。若[l,r]是一个趣味子数组,则(sum[r]-sum[l-1])%modulo==k,因此我们可以一边计算sum[i],一边寻找满足(sum[i]-sum[j])%modulo==kj的数量,将所有的j相加即可得到总的好子数组的数量。
  我们计算sum[i],需要找到i之前满足(sum[i]-sum[j])%modulo==ksum[j]的数量,因此我们需要把每个sum[i]%modulo出现的次数记录下来。而(sum[i]-sum[j])%modulo==k可以转化为sum[j]%modulo==(sum[i]-k)%modulo,又我们每次记录的sum[i]%modulo是正数,所以要保证(sum[i]-k)%modulo是正数,因此需要sum[i]-k+modulo保证其是正数。所以我们只需用哈希表记录下每个sum[i]%modulo出现的次数,然后当寻找以nums[i]结尾的趣味子数组时,只需找到之前出现过几个(sum[i]-k+modulo)%modulo即可。
  注意一个细节,因为sum[i]是记录的是[0,i]符合条件的下标个数,因此若有趣子数组包含nums[0],我们需要手动加一个头nums[-1]=0,因此需要初始化哈希表mp[0]=1。(若不进行初始化,sum[i]-sum[0][1,i],永远取不到nums[0])。为什么是初始化mp[0]=1,因为第一个不为0的sum[i],满足(sum[i]-k)%modulo==0,因此[j,i],0<=j<=i都是有趣子数组,而要想包含[0,i],就需要初始化mp[0]=1
  具体实现如下;

#include<unordered_map>
class Solution {
public:long long countInterestingSubarrays(vector<int>& nums, int modulo, int k) {int preSum=0,n=nums.size();long long ans=0;unordered_map<int,int> mp;mp[0]=1;for(int i=0;i<n;i++){//记录nums[i]及其之前满足nums[j]%m==k的数量preSum+=(nums[i]%modulo==k);ans+=mp[(preSum-k+modulo)%modulo];mp[preSum%modulo]++;}return ans;}
};

3 总结

  初始化的细节很容易让人头晕,本人解释的也不是很好,建议读者结合具体例子推导一下。

http://www.dtcms.com/a/600142.html

相关文章:

  • 建网站费用记账优秀的app交互界面设计
  • 微网站建设流程应用商店软件
  • 莆田网站建设开发wordpress后台登陆显示404
  • 深圳住房与城乡建设部网站wordpress滑块验证码
  • 肇庆网站开发公司wordpress著名插件
  • 个人网站怎么命名哪个代运营公司比较好
  • 建筑企业招聘网站网站源码怎么上传
  • 什么网站可以做推广l建设银行网站
  • 外贸网站推广运营公众号小程序如何开发
  • 微信小程序网站开发定制网站建设多少钱
  • 彩票网站开发app男生学什么技术最挣钱
  • 手机wap网站模板苏州做网站怎么样
  • 网站建设推来客在哪里成都网站建设g冠辰
  • 家装建材公司网站建设详细描述建设网站
  • 阐述建站流程网站建设依据
  • 网站开发的标准流程抖音代运营合同范标准版
  • 清河做网站哪儿好wordpress过滤器插件6
  • 个人注册公司在哪个网站申请网站 ip修改备案流程图
  • 天津网站建站模板公司企业做网站怎么做
  • 建设部网站企业资质官方网站建设的公司
  • 网站黑链怎么做的网页一般用什么软件制作
  • 做网站分为哪几个岗位用python开发网站开发技术
  • 提供专业网站建设平台wordpress建站dedecms
  • 石家庄seo网站推广手机网站开发最好用的框架
  • 网站电脑速成培训班企业建设网站多少钱
  • 马鞍山网站建设开发郑州前端培训机构排名
  • 设备管理系统网站模板企业如何在自己的网站上做宣传
  • 大丰住房和城乡建设局网站北京科技网站开发
  • 怎么做网站推广平台电商网站毕业设计论文
  • 做网站时怎样图片上传怎么才能让图片不变形有什么插件吗钙网logo设计