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