[leetcode] 560。サブアレイの合計がKに等しい



560 Subarray Sum Equals K



説明

整数の配列と整数kが与えられた場合、合計がkに等しい連続サブ配列の総数を見つける必要があります。

例1:
入力:



nums = [1,1,1], k = 2

出力:

2

注意:



  1. 配列の長さは[1、20,000]の範囲です。
  2. 配列内の数値の範囲は[-1000、1000]であり、整数kの範囲は[-1e7、1e7]です。

分析

件名の意味:いくつかのサブアレイと、アレイのK個の連続するサブアレイを特定します。

  • マップについていく。mp[0]は記録用の初期値1であり、mpは前のm個の合計です。mp[sum-k] 1の場合、値kの連続サブシーケンスの存在を示します。これは、ライン上でテストケースシミュレーションを見つける必要があります。

コード

class Solution { public: int subarraySum(vector& nums, int k) { int sum=0 map mp int count=0 mp[0]++ for(int i=0i

参照

LeetCode Subarray SumはK個のサブ配列に等しく、Kです。
560.サブアレイの合計がKに等しい