力扣hot100 ——和为k的子数组 前后缀和(积)各种情况总结

embedded/2025/2/21 17:31:52/

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

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

解法思路:

构建前缀和数组,以快速计算区间和;注意在计算区间和的时候,下标有偏移。

class Solution {
public:int subarraySum(vector<int>& nums, int k) {int res = 0;int cur_sum = 0;unordered_map<int,int> pre_map;int pre = 0;pre_map[pre] = 1;for(auto &num : nums){pre +=num;if(pre_map[pre - k]){res+=pre_map[pre-k];}pre_map[pre] +=1;}return res;}
};

重点!!!

前后缀各种情况计算方法

// 笔记
// 1.求前缀和
// 包含自身
int pre = 0;
for(auto & num : nums){pre += num;    // 每次遍历出来的 pre 即 每个元素的前缀和
}
// 不包含自身
for(int i = 1; i<nums.size();i++){pre += num[i-1];   // 此处注意,是从1开始,即第二个元素的前缀和就是第一个元素,第一个元素的前缀和为0
}// 后缀和
// // 包含自己
int back = nums[nums.size-1];
for(int i = nums.size -2;i<=0; i--){back += num[i];  
}
// 不包含自己
int back = 0;
for(int i = nums.size -2;i<=0; i--){back += nums[i+1];
}
// 前后缀积则将 + 变为 * 即可


http://www.ppmy.cn/embedded/164117.html

相关文章

Spring Boot项目中实现Excel的导出功能

Spring Boot是一个开源的Java应用程序框架&#xff0c;用于构建独立的、基于Java的企业级应用程序。在实现Excel导入导出功能时&#xff0c;借助EasyExcel工具可以简化开发过程&#xff0c;提高效率。下面是一个简单示例来演示如何在Spring Boot项目中实现Excel的导入导出功能&…

蓝桥杯学习大纲

&#xff08;致酷德与热爱算法、编程的小伙伴们&#xff09; 在查阅了相当多的资料后&#xff0c;发现没有那篇博客、文章很符合我们备战蓝桥杯的学习路径。所以&#xff0c;干脆自己整理一篇&#xff0c;欢迎大家补充&#xff01; 一、蓝桥必备高频考点 我们以此为重点学习…

Go入门之数组与切片

var arr1 [...]int{1, 2, 3}fmt.Println(len(arr1)) 数组长度不能扩展 var arr2 [...]int{0: 100, 5: 101}fmt.Println(len(arr2)) } 指定索引初始化 可以通过for和range遍历 值类型:基本数据类型和数组都是值类型&#xff0c;改变副本的值不会改变本身的值 切片为引用数…

java八股文-mysql

目录 1. 索引 1.1 什么是索引 1.2 mysql索引使用的B树? 1.3 mysql的常用存储引擎? 1.3.1 比较 1.3.2 选择建议 1.3.3 总结 1.4 什么事聚集索引和非聚集索引&#xff08;二级索引&#xff09;&#xff1f; 1.5 回表查询? 1.6 覆盖索引? 1.7 mysql超大分页如何处…

Golang深度学习

前言 在2009年&#xff0c;Google公司发布了一种新的编程语言&#xff0c;名为Go&#xff08;或称为Golang&#xff09;&#xff0c;旨在提高编程效率、简化并发编程&#xff0c;并提供强大的标准库支持。Go语言的设计者们希望通过Go语言能够解决软件开发中的一些长期存在的问…

Jest单元测试

由于格式和图片解析问题&#xff0c;可前往 阅读原文 前端自动化测试在提高代码质量、减少错误、提高团队协作和加速交付流程方面发挥着重要作用。它是现代软件开发中不可或缺的一部分&#xff0c;可以帮助开发团队构建可靠、高质量的应用程序 单元测试&#xff08;Unit Testi…

游戏引擎学习第111天

仓库:https://gitee.com/mrxiao_com/2d_game_2 将调试相机稍微拉远一点 今天的任务是查看地面块的相关内容。首先&#xff0c;在开始之前&#xff0c;决定将调试摄像头稍微拉远一些&#xff0c;因为希望能够看到粉色区域的整体情况。 在渲染组中&#xff0c;昨天介绍了一个概…

爱普生 SG-8101CE 可编程晶振在笔记本电脑的应用

在笔记本电脑的精密架构中&#xff0c;每一个微小的元件都如同精密仪器中的齿轮&#xff0c;虽小却对整体性能起着关键作用。如今的笔记本电脑早已不再局限于简单的办公用途&#xff0c;其功能愈发丰富多样。从日常轻松的文字处理、网页浏览&#xff0c;到专业领域中对图形处理…