(1)题目描述:
给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。
(2)输入输出描述:
输入:nums =[1,1,1], k =2
输出:2
关键思路:
遍历数组,每到一个元素,记录当前元素前缀和,并且查找sum-k是否出现过。
(2)代码块
class Solution {
public:
int subarraySum(vector<int>& nums, int k){
int result =0;
int sum=0;
unordered_map<int,int> record; // 记录前缀和出现次数,key为前缀和,value为出现次数
record[0]=1;
for(int i =0;i<nums.size();++i){sum+= nums[i]; // 记录当前元素前缀和
if(record.count(sum-k))
result += record[sum - k]; // 查找前缀和是否出现过
record[sum]++;}return result;}};
原文:Julia Evans - 2024.09.27
在过去的几周里,我花了很多时间在用 Go 开发一个网站,虽然不知道它最终会不会发布,但在这个过程中我学到了一些东西,想记录下来。以下是我的一些收获:
Go 1.22 现在有了更…
1.download
Visual Studio Code - Code Editing. Redefined download .deb. 2.install or intsall by ternimal:
sudo dpkg -i code_1.93.1-1726079302_amd64.deb 3.open vscode 4. install some extensions
c , python or GitLens.