#include #include #include using namespace std; // 方法一:枚举,超出时间限制 int subarraySum1(vector& nums, int k) { int n = nums.size(); if(n == 0){ return 0; } int res = 0, sum = 0; for(int i = 0; i < n; i++){ for(int j = i; j >= 0; j--){ sum += nums[j]; if(sum == k){ res++; } } sum = 0; } return res; } // 方法二:枚举加前缀和 int subarraySum(vector& nums, int k) { int n = nums.size(); if(n == 0){ return 0; } int pre = 0, res = 0; map mp; mp[0] = 1; for(int i = 0; i < n; i++){ pre += nums[i]; if(mp.count(pre-k)){ res += mp[pre-k]; } mp[pre]++; } return res; } int main(){ int n, k, res; cin>>n>>k; vector nums(n); for(int i = 0; i < n; i++){ cin>>nums[i]; } res = subarraySum(nums, k); cout<
上一篇 Windows下根据脚本名查找进程并杀死
下一篇 在visual studio 连接数据库出现your project contains error(s),please fix them before running your application
版权所有 (c)2021-2022 MSHXW.COM
ICP备案号:晋ICP备2021003244-6号