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

成都地区网站开发成本广安哪里做网站

成都地区网站开发成本,广安哪里做网站,网站宣传推广文案,杭州网站建设报价1.题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2 示例 2: 输入:nums […

1.题目

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。

子数组是数组中元素的连续非空序列。

示例 1:
输入:nums = [1,1,1], k = 2
输出:2

示例 2:
输入:nums = [1,2,3], k = 3
输出:2

2. 题解

class Solution {public int subarraySum(int[] nums, int k) {int n = nums.length;int[] s = new int[n+1];for(int i = 0; i < n; i++){s[i+1] = s[i] + nums[i];}int ans = 0;Map<Integer,Integer> cnt = new HashMap<>(n+1);for (int sj : s){ans += cnt.getOrDefault(sj - k, 0);cnt.merge(sj, 1, Integer::sum);}return ans;}
}

3. 解析

出自这位老师:灵茶山艾府:前缀和+哈希表:从两次遍历到一次遍历,附变形题(Python/Java/C++/Go/JS/Rust)

第1部分:初始化变量和前缀和数组

int n = nums.length;
int[] s = new int[n+1];
  • int n = nums.length;:获取输入数组nums的长度,赋值给n。
  • int[] s = new int[n+1];:创建一个长度为n+1的前缀和数组s。前缀和数组用于存储从数组开头到当前位置的累加和。

第2部分:填充前缀和数组

for(int i = 0; i < n; i++){s[i+1] = s[i] + nums[i];
}
  • 使用一个循环从i=0遍历到nums.length-1,计算前缀和。
  • s[0]初始化为0,表示前缀和数组的第一个元素是0。
  • 对于每个索引i(0 ≤ i < n),将当前nums的值加到s[i+1]中。这样,s[i+1]就记录了从nums[0]到nums[i]的累加和。

第3部分:初始化答案变量

int ans = 0;
  • int ans = 0;:用于累计符合条件子数组的数量。

第4部分:创建哈希表并初始化

Map<Integer,Integer> cnt = new HashMap<>(n+1);
  • 创建一个容量为n+1的HashMap,键值类型是Integer。
  • hashmap的作用是统计每个前缀和出现的次数。这里预先分配了n+1个空间。

第5部分:遍历前缀和数组

for (int sj : s){ans += cnt.getOrDefault(sj - k, 0);cnt.merge(sj, 1, Integer::sum);
}
  • 遍历s数组中的每一个元素sj。
  • 对于每个sj,首先查找键值对(sj - k)在map中出现的次数,并将这个次数加到ans中。这一步的作用是找到所有以当前前缀和sj为结尾且子数组和等于k的子数组数量。
  • 然后更新哈希表cnt:将键sj的出现次数增加1。

第6部分:返回答案

return ans;

最终返回累计的符合条件子数组的数量ans。

http://www.dtcms.com/wzjs/568428.html

相关文章:

  • 成交型网站建设方案一键logo设计生成器
  • 山东网站定制设计公司网站开发图片
  • 如何做百万格子网站网络营销专业就业公司
  • 合肥市建设工程市场价格信息网站用python做的电商网站
  • 文化集团网站模板可画设计软件下载
  • 虚拟体验网站网站正在建设中色综合
  • 云南省建设监理协会网站网站如何备份
  • 深圳市建设局网站首页工信部网站手机备案查询
  • 河北省建设环境备案网站网站建设要考虑哪些方面
  • 垡头街道网站建设兰州市住房建设局网站
  • 网站的标签修改龙江做网站
  • 1997年做网站是什么语言cc域名做门户网站
  • 网站建设的目的与意义是什么超市小程序怎么做
  • 上海网站开发公司哪家好中山推广网站
  • 网页设计网站长沙怎么在ps里做网站设计
  • 宁晋网站建设公司页面设计层级一般控制()层
  • 加密网站如何做企业招聘网站
  • 吉安网站揭阳市建设局网站
  • 南通市建设局网站马建明网络推广有哪些形式
  • 简历网站推荐建设局网站自查自纠
  • 学网站建设需要学多久雄安做网站公司
  • 国开网站怎么做搭建网页整体框架技术
  • 天津网站建设 熊掌号营销型网站建设范文
  • 惠阳网站建设安装wordpress 脚本
  • vscode 网站开发教程成都品牌设计公司有哪些
  • 做ic芯片的要去哪个网站上海个人网站建设
  • 免费做金融网站有哪些东莞大岭山属于哪个镇
  • 中国最大的做网站公司网站设计报告
  • 做微信推送网站平面设计师证报名入口
  • 富通建设工程有限公司网站网站制作及维护合同