560 和為K的子陣列 力扣

2021-09-25 03:32:28 字數 602 閱讀 9106

題意理解

給定乙個陣列,計算連續元素和等於k的個數。

注意,元素可能為負,相應的連續和忽大忽小。

問題分析

方法1:依次遍歷元素,依次遍歷每個元素所有可能連續和是否k。

方法2:連續和看成是從元素0開始的兩個連續和的差值。問題轉化為遍歷每個連續和,如果存在這個連續和-k差值的連續和,那麼存在乙個等於k的連續和,如果差值不止乙個,那麼等於k的連續也不止乙個。存在多個連續和的解釋是,連續和本身可以相等。

其他 鏈結

int subarraysum(vector& nums, int k) 

sum_dict[sum] ++; //將當前累積和儲存到hash表中

}return cnt;

}

int subarraysum(vector& nums, int k) 

int j = i + 1; //從前往後遍歷

int flag = 0;

while (j < len)

j ++; //遍歷下乙個}}

return cnt;

}

力扣 560 和為K的子陣列

給定乙個整數陣列和乙個整數k,你需要找到該陣列中和為k的連續的子陣列的個數。輸入 nums 1,1,1 k 2 輸出 2 1,1 與 1,1 為兩種不同的情況。方法一 字首和 不優化 定義pre i 為 0.i 裡所有數的和,即字首和。you遞推關係得到 pre i pre i 1 nums i 那...

力扣 560 和為K的子陣列 雜湊

給定乙個整數陣列和乙個整數 k,你需要找到該陣列中和為 k 的連續的子陣列的個數。輸入 nums 1,1,1 k 2 輸出 2 1,1 與 1,1 為兩種不同的情況。陣列的長度為 1,20,000 陣列中元素的範圍是 1000,1000 且整數 k 的範圍是 1e7,1e7 class soluti...

560 和為K的子陣列

題解 1.維護乙個unordered map 字首陣列和,count 2.遍歷陣列的累加和,如果存在sum k,在 unordered map裡面,則有count種情況 複雜度分析 解題思路 一 建立map表用於儲存每個連續子陣列sum求和出現的次數,初始化為 0,1 表示和為0的連續子陣列出現1次...