给定一个整数数组和一个整数 k,你需要找到该数组中和为 的连续的子数组的个数。

示例 1 :

输入:nums = [1,1,1], k = 2
输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。

说明 :

  1. 数组的长度为 [1, 20,000]。
  2. 数组中元素的范围是 [-1000, 1000] ,且整数 的范围是 [-1e7, 1e7]。

方法一: 暴力索引

class Solution {
public:int subarraySum(vector<int>& nums, int k) {int result = 0;int n = nums.size();int* sum = new int[n];sum[0] = nums[0];for(int i=1;i<n;++i){sum[i] = sum[i-1]+nums[i];}int temp = 0;for(int i=0;i<n;++i){int i_t = i-1;for(int j=i;j<n;++j){if(i_t==-1)temp=sum[j];elsetemp = sum[j]-sum[i_t];if(temp==k)result++;}}return result;}
};

方法二:

反向思维

class Solution {
public:int subarraySum(vector<int>& nums, int k) {unordered_map<int,int> map;int n = nums.size();map[0] = 1;int sum = 0;int result = 0;for(int i=0;i<n;++i){sum += nums[i];if(map.find(sum-k)!=map.end())result += map[sum-k];map[sum]++;}return result;}
};

和为K的子数组—leetcode560相关推荐

  1. 5939. 半径为 k 的子数组平均值

    5939. 半径为 k 的子数组平均值 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k . 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 中心 ...

  2. [Leedcode][JAVA][第560题][和为K的子数组][Hashmap][数组]

    [问题描述][第560题][和为K的子数组][中等] 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数.示例 1 :输入:nums = [1,1,1], k = 2 输 ...

  3. LeetCode 2090. 半径为 k 的子数组平均值(滑窗)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k . 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 ...

  4. 【枚举 + 求最大公约数方法】最大公约数等于K的子数组数目问题

    慢一点是为了快一点,加油,大家 ,不要放弃 ! -- 2022/11/13 一.题目描述: 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 nums 的子数组中元素的最大公因数等于 k ...

  5. 力扣 2090. 半径为 k 的子数组平均值

    题目 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k . 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 中心 且 半径 为 k 的子数组中所有 ...

  6. 2022-6-13 咒语和药水的成功对数,替换字符后匹配,统计得分小于 K 的子数组数目,......

    1. 咒语和药水的成功对数 You are given two positive integer arrays spells and potions, of length n and m respec ...

  7. 最大公因数等于 K 的子数组数目求解全过程

    题目:给你一个整数数组 nums 和一个整数 k ,请你统计并返回 nums 的子数组中元素的最大公因数等于 k 的子数组数目. 子数组 是数组中一个连续的非空序列. 数组的最大公因数(Greates ...

  8. 和为k的子数组、中位数为k的子数组

    和为 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 . 示例 1: 输入:nums = [1,1,1], k = 2 输出:2 示例 ...

  9. 11. Leetcode 713. 乘积小于K的子数组 (数组-同向双指针-滑动窗口)

    给定一个正整数数组 nums和整数 k .请找出该数组内乘积小于 k 的连续的子数组的个数.示例 1:输入: nums = [10,5,2,6], k = 100 输出: 8 解释: 8个乘积小于10 ...

  10. leetcode713. 乘积小于K的子数组(双指针)

    给定一个正整数数组 nums. 找出该数组内乘积小于 k 的连续的子数组的个数. 示例 1: 输入: nums = [10,5,2,6], k = 100 输出: 8 解释: 8个乘积小于100的子数 ...

最新文章

  1. mysql decimal(10,2)对应java类型
  2. Orleans 3.0 为我们带来了什么
  3. 你连简单的枚举类都不知道,还敢说自己会Java???滚出我的公司
  4. 函数式编程(4)-装饰器
  5. php100 swfupload,swfupload上传图片读取最大只有100*75
  6. vscode的sftp插件同步失败no such file的问题
  7. linux 链接第三方库
  8. android 单位选择器,Android-PickerView
  9. 法曲率、主曲率、平均曲率和高斯曲率
  10. win7图片查看器无法显示图片,内存不足解决方法
  11. 以太网的CSMA/CD协议
  12. matlab画极坐标心形线,matlab画心形线
  13. Unity中的第一种签到方式的源码?
  14. 微信链接修改图片_微信链接修改图标
  15. 陌上谁家年少足风流?
  16. elasticse报错 max virtual memory areas vm.max_map_count [65530] is too low, increase to at leas
  17. 蓝牙规范-Vol 6:低功耗控制器 Part A 物理层规范
  18. python 解析恶心的时间
  19. Geocentrix.ReWaRD.v2.5.21.903 挡土墙设计+Strat.V4.5
  20. 毕业设计So Easy:珠穆朗玛FM音频电台APP

热门文章

  1. linux系统分区不,其中,不属于Linux系统分区的是()。
  2. 两个不相同的类之间如果赋值
  3. 剑指offer-跳台阶
  4. 场景/故事/story——寻物者发布消息场景、寻失主发布消息场景、消息展示场景、登录网站场景...
  5. hihocoder #1388 : Periodic Signal NTTFFT
  6. grunt前端构建工具使用教程
  7. (转)简单代码生成器原理剖析(二)
  8. Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题
  9. 判断C#中的字符串是否是数字,如果是转换成int类型
  10. php extname shared,PHP: 编写第一个PHP扩展