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

海城网站制作wordpress 发布 软件

海城网站制作,wordpress 发布 软件,wordpress nginx apache,深圳洛可可工业设计有限公司来自leetcode 560 前言 自己只会暴力,这里就是记录一下前缀和哈希表的做法,来自灵神的前缀和哈希表:从两次遍历到一次遍历,附变形题 正文 首先,这道题无法使用滑动窗口,因为滑动窗口需要满足单调性&am…

来自leetcode 560
在这里插入图片描述

前言

自己只会暴力,这里就是记录一下前缀和+哈希表的做法,来自灵神的前缀和+哈希表:从两次遍历到一次遍历,附变形题

正文

首先,这道题无法使用滑动窗口,因为滑动窗口需要满足单调性,当右端点元素进入窗口时,窗口元素和是不能减少的。但是这道题中数组元素可以是负数,因此元素和可能会减少,不满足单调性,所以无法使用滑动窗口。

暴力
比较容易想到的当然是暴力。两个for循环,把所有的子数组的和都计算一遍,并判断和是否为k。暴力直接超时。
在这里插入图片描述

前缀和+哈希表
这里,灵神先给了两数之和的优化思路【动画】从两数之和中,我们可以学到什么?,感觉对于理解这道题很有用。

设 i<j,如果 nums[i] 到 nums[j−1] 的元素和等于 k,用前缀和表示,就是
s[j]−s[i]=k。

枚举 j,上式变成s[i]=s[j]−k。
对于问题【该数组中和为k的子数组的个数】,就可以变相理解为:
对于每个 s[j],分别计算有多少个 s[i] 满足 i<j 且 s[i]=s[j]−k(已知 s[j] 和 k,统计 s[0] 到 s[j−1] 中有多少个数等于 s[j]−k),然后再将每个 s[j]计算得到的 s[i] 的个数相加就得到最终答案。

比如有例子:nums=[1,1,−1,1,−1], k=1,其前缀和 s=[0,1,2,1,2,1]。那么流程如下图,对于每个s[j]判断前面有几个s[i]满足s[i]=s[j]-k。
在这里插入图片描述

而哈希表 cnt 的作用就是记录已经遍历过的s元素的个数,那么枚举到 s[j] 时,从哈希表中就可以直接通过 cnt[s[j]−k]找到有几个 s[i]。因此每次枚举到s[j]后就把s[j]加入到哈希表中或更新s[j]的个数。

代码如下,需要两次遍历,一次是构建前缀和,一次是遍历前缀和:
在这里插入图片描述
以下代码只需要一次遍历,一边构建前缀和一边遍历:
在这里插入图片描述

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

相关文章:

  • socket通信 tcp的客户端与服务端,双方能进行收发
  • 凡科建站公司wordpress开启xml-rpc
  • 柳州建设公司网站网站建设公司招聘面试
  • 服装辅料东莞网站建设英文网站建设用途
  • 上海建设厅网站首页科学小制作
  • php 网站建设方案网站开发命名规则
  • 做网站时怎么取消鼠标悬停一个新产品策划方案
  • 备份整个网站免费网站模板软件
  • 怎样做境外网站清河网站建设价格
  • 网站加载特效代码写软文用什么软件
  • 互联网产品设计徐州seo外包公司
  • 成都做网站建设公司教育类网站 前置审批
  • JavaScript 类继承
  • 响应式网站什么意思报名网站辽宁省建设银行
  • HTTP加密版本——“HTTPS”
  • 迅速网站wp网站建设模板
  • 美食网站建设页面要求昆明网站建设c3sales
  • Python 字典与条件语句详解
  • 怎么用手机制作网站网站怎么做内链接地址
  • 罗定市住房和城乡建设局网站WordPress自己安装了插件
  • java应用dubbo接口超时问题分析,数据库方向
  • 免费的开发网站建设易居系统登录
  • 网站建设中的功能模块描述网站开发的学习路线
  • 个人网站自己怎么做网站首页
  • 第28节:网络同步与多人在线3D场景
  • 怎么做网站报告小勐拉网站建设
  • 小游戏网站网址个人网站示例
  • dedeseo网站wordpress 分类文章数
  • 房山网站建设优化seo小企业网站建设的连接方式
  • Linux系统性能监控与故障定位实战:CPU/内存/I/O/网络