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

力扣 前缀和

找子数组的个数了解前缀和的基础。

前缀和大致理解为到达某个位置,前面几个数的总和,即s[i+1]=s[i]+a[i+1],可以通过一次循环获得。然后几个前缀和作差,即可得到某个位置到某个位置的和,根据map的键值对进行更新次数。

题目 

class Solution {public static int subarraySum(int[] nums, int k) {int count = 0;int sum = 0;Map<Integer, Integer> map = new HashMap<>();map.put(0, 1); // 初始化前缀和为0的次数为1for (int i = 0; i < nums.length; i++) {sum += nums[i];//计算前缀和//sum-k满足条件从某个位置到当前位置的连续子数组的和为k//sum[j]-sum[i]=k,k即i+1到j的元素之和if (map.containsKey(sum - k)) {//对应的次数累加count += map.get(sum - k);}//更新sum在map出现的次数,出现过就在原来的次数递增,没出现过初始化为1map.put(sum, map.getOrDefault(sum, 0) + 1);}return count;}
}
class Solution {public int subarraySum(int[] nums, int k) {int count = 0;//双指针for (int i = 0; i < nums.length; i++) {int sum = 0;//每到一个数就重置sumfor (int j = i; j >= 0; j--) {sum += nums[j];//从当前的数开始往回进行累加,找组合数的和if (sum == k) {count++;}}}return count;}
}

 


http://www.mrgr.cn/news/47562.html

相关文章:

  • Python基于YOLOv8和OpenCV实现车道线和车辆检测
  • ComfyUI的API使用教程
  • 排序:插入、选择、交换、归并排序
  • k8s的原理和,k8s的安装
  • iChainfo 品牌升級為 ichaingo,打造 Web3 數據基礎設施新標杆
  • 基于Python编程语言的自动化渗透测试工具
  • Java中的拦截器、过滤器及监听器
  • tcpdump深入浅出
  • C++从入门到起飞之——(multi)set与(multi)map的的使用 全方位剖析!
  • 6. 继承、重写、super、final
  • 算法: 前缀和题目练习
  • Corel VideoStudio Ultimate 会声会影2025旗舰版震憾来袭,会声会影2025旗舰版最低系统要求
  • 如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发
  • 【gRPC】4—gRPC与Netty
  • windows C++-移除界面工作线程(三)
  • 如何打破双亲委派机制
  • 网络安全知识|网安问答题|OSPF报文协议|抓包工具|路由器环路|序列化与反序列化|磁盘利用率|网络攻防
  • 嵌入式数据结构中线性表的具体实现
  • 免费使用Certbot在Amazon EC2上启用https证书
  • 深入浅出理解七层网络协议
  • 【JavaScript】拷贝对象的几种方式与对比
  • 实践体验密集小目标检测,以小麦麦穗颗粒为基准,基于YOLOv9全系列【yolov9/t/s/m/c/e】参数模型开发构建智能精准麦穗颗粒检测计数系统
  • 小猿口算APP脚本(协议版)
  • 毕设---中国移动网站平台管理系统的设计与实现
  • 结合大语言模型的机械臂抓取操作学习
  • 模版进阶 非类型模版参数