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

建网站的公司不肯签合同成都家装设计公司排名榜

建网站的公司不肯签合同,成都家装设计公司排名榜,山东省住房和城市建设厅网站,小地方网站建设公司问题背景 给你一个下标从 0 0 0 开始的整数数组 n u m s nums nums,以及整数 m o d u l o modulo modulo 和整数 k k k。 请你找出并统计数组中 趣味子数组 的数目。 如果 子数组 n u m s [ l . . r ] nums[l..r] nums[l..r] 满足下述条件,则称其为…

问题背景

给你一个下标从 0 0 0 开始的整数数组 n u m s nums nums,以及整数 m o d u l o modulo modulo 和整数 k k k
请你找出并统计数组中 趣味子数组 的数目。
如果 子数组 n u m s [ l . . r ] nums[l..r] nums[l..r] 满足下述条件,则称其为 趣味子数组

  • 在范围 [ l , r ] [l, r] [l,r] 内,设 c n t cnt cnt 为满足 n u m s [ i ] nums[i] % modulo == k nums[i] 的索引 i i i 的数量。并且 c n t cnt % modulo = k cnt
    以整数形式表示并返回趣味子数组的数目。
    注意:子数组是数组中的一个连续非空的元素序列。

数据约束

  • 1 ≤ n u m s . l e n g t h ≤ 1 0 5 1 \le nums.length \le 10 ^ 5 1nums.length105
  • 1 ≤ n u m s [ i ] ≤ 1 0 9 1 \le nums[i] \le 10 ^ 9 1nums[i]109
  • 1 ≤ m o d u l o ≤ 1 0 9 1 \le modulo \le 10 ^ 9 1modulo109
  • 0 ≤ k < m o d u l o 0 \le k < modulo 0k<modulo

解题过程

首先做一个转化,数组中的元素其实可以分为两类,划分的标准是是否满足 n u m s [ i ] m o d m o d u l o = k nums[i] \ mod \ modulo = k nums[i] mod modulo=k
如果将满足上述条件的元素用 1 1 1 来表示,不满足的用 0 0 0 来表示,那么符合条件的元素数目就等价于子数组的元素和,元素和可以通过前缀和方便地计算出来。
在前缀和数组 p r e S u m preSum preSum 中,要求 ( p r e S u m [ r i g h t ] − p r e S u m [ l e f t ] ) m o d m o d u l o = k (preSum[right] - preSum[left]) \ mod \ modulo = k (preSum[right]preSum[left]) mod modulo=k,也即 ( p r e S u m [ r i g h t ] − p r e S u m [ l e f t ] ) m o d m o d u l o = k m o d m o d u l o (preSum[right] - preSum[left]) \ mod \ modulo = k \ mod \ modulo (preSum[right]preSum[left]) mod modulo=k mod modulo p r e S u m [ r i g h t ] − p r e S u m [ l e f t ] preSum[right] - preSum[left] preSum[right]preSum[left] k k k 关于模 m o d u l o modulo modulo 同余, ( p r e S u m [ r i g h t ] − k ) m o d m o d u l o = p r e S u m [ l e f t ] m o d m o d u l o (preSum[right] - k) \ mod \ modulo = preSum[left] \ mod \ modulo (preSum[right]k) mod modulo=preSum[left] mod modulo
这样一来,只要用哈希表统计 p r e S u m [ l e f t ] m o d m o d u l o preSum[left] \ mod \ modulo preSum[left] mod modulo,再枚举右端点累计答案即可。

具体实现

class Solution {public long countInterestingSubarrays(List<Integer> nums, int modulo, int k) {int n = nums.size();int[] preSum = new int[n + 1];for (int i = 0; i < n; i++) {preSum[i + 1] = preSum[i] + (nums.get(i) % modulo == k ? 1 : 0);}int[] count = new int[Math.min(n + 1, modulo)];long res = 0;for (int item : preSum) {if (item >= k) {res += count[(item - k) % modulo];}count[item % modulo]++;}return res;}
}
http://www.dtcms.com/a/559685.html

相关文章:

  • 保险网站有哪些平台室内设计联盟注册邀请码
  • 电子商务网站开发与设计备案信息网站被注册
  • 中国最大的摄影网站网站建设是基于
  • 设计网站大全备案变更网站信息
  • 虚拟网站建设步骤网络平台运营是做什么的
  • 织梦移动端网站怎么做如何建立自己的网站教程
  • 怎么查看网站根目录中国互联网协会新春茶话会
  • 自己的博客和自己的网站做友链无人在线观看高清视频单曲直播
  • 广州市公司网站建设南宁网站建设是什么
  • 网站的后台管理员系统建设教程求一个自己做的网站链接
  • 怎么看网站有没有做百度推广wordpress免费资源网
  • 负面信息搜索引擎 网站高端品牌包包
  • wordpress添加自定义tag标签企业网站优化
  • 阿里服务器怎么做网站服务器平台网站开发公司
  • 印后设备网站建设高粱seo博客
  • 企业网站建设知识应用技能舟山网站建设
  • 广西城市建设学校手机官方网站微网站趋势
  • 做木皮的网站asp.net网站开发四酷全书
  • 大学生做静态网站网站不稳定有什么影响
  • h5页面制作工具 软件专业的网站优化公司排名
  • 企业网站找谁做好在中山网
  • dfs|位|dirs
  • 网站后端开发网页设计与制作试卷分析报告
  • 什么是网站交互wordpress 装修 模板
  • 互联网软件开发是什么wordpress导航如何优化
  • 仙游哪里可以做网站的虚拟主机 删除网站缓存
  • 石家庄网站定制制作外国ps素材网站
  • 怎么申请 免费网站空间wordpress支付文件在哪
  • 西宁最好网站建设公司程序开发总结
  • 网站建设課程广东网站建设微信网站定制