【LeetCode笔记】560. 和为K的子数组(Java、前缀和、哈希表)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】560. 和为K的子数组(Java、前缀和、哈希表)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 思路 & 代碼
- 暴力法 O(n2n^2n2)
- 前綴和 + 哈希表 O(n)
- 二刷
題目描述
- 第一道前綴和題目~
思路 & 代碼
暴力法 O(n2n^2n2)
- 固定一個值,從后往前找滿足的條件即可
前綴和 + 哈希表 O(n)
- 連續子數組值 = preNum[j] - preNum[i],很巧妙
- 一次遍歷動態哈希,一邊維護一邊找~
二刷
- 才發現對前綴和這個概念不是很熟悉…
- 說實話我覺得這題代碼相對抽象,有必要用點簡單例子人腦走一遍:
- 比如 map.put(0, 1) 這一行(比如[1, 1], 2。沒有這一行就直接得 0 了)
- (雖然圖片有點丑,但是請勉強看看吧 = = )
- 這么個意思,累加 sum,如果發現當前 sum,在 - k 之后的值,曾經出現過,那么說明存在圖中連續的橙色子數組,滿足累加和 = k!
總結
以上是生活随笔為你收集整理的【LeetCode笔记】560. 和为K的子数组(Java、前缀和、哈希表)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 力压Java、C语言!Python 获2
- 下一篇: 【学习笔记】第二章——进程的控制、通信