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

网站建设及推广好学习吗推广关键词怎么设置

网站建设及推广好学习吗,推广关键词怎么设置,企业动态网站建设步骤,网站设置不可粘贴题目 链接:leetcode链接 思路分析(前缀和 同余定理) 首先,我们要了解一下什么是同余定理 同余定理: 如果(a - b)/ p k …… 0 则 a % p b % p 证明我写在草稿纸上,如下图: 初…

题目

链接:leetcode链接

在这里插入图片描述

思路分析(前缀和 + 同余定理)

首先,我们要了解一下什么是同余定理

同余定理:
如果(a - b)/ p = k …… 0
则 a % p == b % p

证明我写在草稿纸上,如下图:
在这里插入图片描述

初此之外,我们还需要理解一个问题
在C++/java中负数取模会怎么样呢?
比如 - 2 % 5等于多少呢?
按道理来说应该是3,但是C++/java里的答案是-2
这明显是需要进行修正的

如何进行修正呢?
我们只需要( a % p + p)% p
这样,无论是正数取模还是负数取模都不会出现问题。

OK,到这里前置知识讲完了,我们就正式开始讲思路了。

需要找一个子数组的和是k的倍数
那么只需要找两个区间的前缀和对k取模的余数相同即可。

和这道题的思路非常相似
传送门:560.和为k的子数组

我们利用滚动数组去求前缀和,
记录sum % k的余数
然后在[0,i-1]区间内去hash表中寻找一个区间的前缀和对k取模的结果与sum对k取模结果相同即可
将sum% k的余数放到hash表中(一定要是先查找在插入)

细节:
(1)什么时候插入hash表
一定要是先查找,在插入
(2)对于[0 , i]区间的和正好是K的倍数的情况如何处理
还是一样,我们先去把余数0提前先往hash表里插一个即可
具体原因可以查看和为k的子数组这篇文章

代码

//同余定理int subarraysDivByK(vector<int>& nums, int k) {int sum = 0,ret = 0;unordered_map<int,int> hash;//hash表里面放余数hash[0] = 1;//这个0依旧是存的余数for(auto& e:nums){sum += e;int check = (sum % k + k) % k; // 对余数进行修正很关键if(hash.count(check))  ret += hash[check]; hash[check]++;}return ret;}
http://www.mmbaike.com/news/23604.html

相关文章:

  • 加盟凡科建站抚州网络推广
  • 名校建设网站长沙seo外包服务
  • 建立网站功能企业微信会话存档
  • 好的专题网站百度竞价渠道代理
  • 陕西专业网站建设哪家好韶山seo快速排名
  • phpmysql旅游网站开发注册公司网站
  • 如何做微信官方网站怎样写营销策划方案
  • wordpress .mo .po北京网站快速排名优化
  • 制作网站如何选择主机中国最新消息新闻
  • 寻找网站设计与制作济南做网站公司哪家好
  • 嘉兴建设局网站链接生成器在线制作
  • 建设银行福州分行招聘网站友链购买有效果吗
  • 使用ftp软件连接到网站空间比较开放的浏览器
  • 商城网站设计公司搜索引擎营销案例有哪些
  • wordpress小程序二开seo外包网站
  • 建立网站是什么建立的竞价什么意思
  • 西宁网站建设开发公司内部搜索引擎优化
  • wordpress vipsystem安卓aso优化工具
  • 网站做区块链然后往里面投钱免费引流推广工具
  • 网页美工设计的工作流程?宁波seo费用
  • 做网站一个人可以吗广告视频
  • 做网站用百度浏览器seo网站设计
  • 建设网站东莞公司怎么做网站优化
  • wordpress如何从网站登录后台郑州seo外包平台
  • 建设网站时间推进表自媒体135网站免费下载安装
  • 海南住房和城乡建设委员会门户网站网络营销专业可以干什么工作
  • 日本dns地址推荐新手做seo怎么做
  • 网站建设怎么做账郑州网站优化seo
  • wordpress 更换空间广东培训seo
  • 做网站java好还是php好seo高手培训