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

网站排名怎么做 知乎dz论坛网站源码

网站排名怎么做 知乎,dz论坛网站源码,重庆高端网站建设价格,做网站公司上海同余定理同余定理变形前言一、使数组和能被P整除二、同余定理变形总结参考资料前言 同余定理非常经典,采用前缀和 map,当两个余数前缀和为一个值时,则中间一段子数组刚好对P整除。但是能否找到前面是否有一段子数组和可以对P整除呐&#xf…

同余定理+同余定理变形

  • 前言
  • 一、使数组和能被P整除
  • 二、同余定理+变形
  • 总结
  • 参考资料

前言

同余定理非常经典,采用前缀和 + map,当两个余数前缀和为一个值时,则中间一段子数组刚好对P整除。但是能否找到前面是否有一段子数组和可以对P整除呐?反向思考,找map[P - mod]就知道中间一段子数组和对P取余为mod,前面一段子数组和对P取余为0.

一、使数组和能被P整除

在这里插入图片描述

二、同余定理+变形

  • 基本思路
    // 前缀和+map,记录前面除p多余的情况a,a属于[0,p)
    // 有一样的余数,不就能整除了嘛,记录余数+位置,同余定理。
  • 存在问题
    // 但是可能删除中间部分,并不是以index=0为左边界,还得以当前为右边界不断更新map,变成了O(n2),就像两层for循环一样了。
    // 但O(n2)显然超时,回到map,可不可以不for循环更新map,直接反向思考,前面为0,那中间那部分余数就算多余的。
func minSubarray(nums []int, p int) int {// 求整个数组和对p的余数sum := getMod(nums,p)// 前缀和记录,可以正向+反向使用前缀和prefix := map[int]int{0:-1}pre,m := 0,len(nums) // 前缀和,最小删除子数组的长度for i,n := range nums {mod := (n + pre) % p // 正向余数x := (p - sum + mod) % p // 反向余数,可得到中间一段子数组和为sum// 正向余数,同余定理,删除最前面的一截。if v,ok := prefix[sum];ok { m = min(m,v + 1)}// 反向余数,以当前位置为需要删除子数组的右边界,寻找符合要求的左边界。if v,ok := prefix[x];ok {m = min(m,i - v)}prefix[mod] = ipre = mod}// 没有寻找到可删除的子数组。if m == len(nums) {return -1}return m
}
func getMod(nums []int,p int) int {sum := 0for _,n := range nums {sum += nsum %= p}return sum
}
func min(x,y int) int {if x < y {return x}return y
}

总结

1)同余定理,可以O(N)复杂度求到子数组和对P整除,基于此多多思考其本质,才能另辟蹊径,做到其变形解法。

参考资料

[1] LeetCode 使数组和能被P整除

http://www.yayakq.cn/news/263783/

相关文章:

  • 建设贷款网站哪家好制作网站的成本规划
  • 电商扶贫网站建设厦门谷歌seo公司
  • 广厦建设集团官方网站python做网站的优势
  • 韶关市住房和城乡建设管理局网站百度自然排名网站的logo怎么做
  • 做网站需要多少钱知乎陕西省住房建设部官方网站一建
  • 企业网站建设晋升wordpress搬到谷歌服务器
  • 国外做的比较好的展台网站做网站有名的公司
  • 飞凡网站建设wordpress 登陆 函数
  • 互联网网站建设制作网站建设公司名片
  • 新密网站做优惠券网站需要淘宝哪些接口
  • 动漫制作专业零基础天津自动seo
  • 江阴外贸网站设计网页优化公司
  • win7自己电脑做网站一站式做网站公司
  • 网站设计一个页多少钱广企网站建设
  • 外贸网站是用什么软件做的可以做投票的网站
  • 移动互联网站建设定制做网站技术
  • 设计培训培训网站建设宁波谷歌seo
  • 做js题目的网站知乎线上平台销售模式
  • 中国建设银行网站缺点泉州制作网页的网站
  • 长春建站优化加徽信xiala5工信部域名备案查询官网
  • 个人网站的色彩设计怎么做wordpress图片收费
  • 安徽省卫生计生网站医共体建设长沙行业网站建设费用标准
  • 怎样买空间做网站未满十八岁能用网上借钱吗
  • h5响应式网站源码下载电商网站更适合
  • 网站建设优化教程如何知道一个网站是用什么做的
  • 网站备案密码 多少位网站建设H5 源码
  • 建设银行网站怎样查询贷款信息吗看房自己的网站建设多少钱
  • 响应式网站开发实例国防科技大学简介
  • 怎样给网站做推广南通制作网站公司
  • kotlin做网站网站关于我们的页面