演算法 日更 第二十一期 資料結構 差分與字首和

2022-07-12 11:15:12 字數 889 閱讀 5169

▎前言

首先來說明一下,查分和字首和並不像資料結構,更多的是技巧,只不過是被歸類為資料結構中的東西。

▎字首和

☞『什麼是字首和?』

字首和其實就是給定乙個數列,pre[i]儲存前i個數的和的意思。

顯然,我們可以得到乙個公式:pre[i]=pre[i-1]+a[i]。

☞『字首和有什麼用?』

快速查詢乙個區間[l,r]的和。

顯然,我們又得到了乙個式子:[l,r]的和=pre[r]-pre[l-1]。

☞『字首和的應用』

線段樹,樹狀陣列等。

▎差分☞

『什麼是差分?』

差分,又名差分函式或差分運算,差分的結果反映了離散量之間的一種變化,是研究離散數學的一種工具,常用函式差近似導數。

差分在數學、物理和資訊學中應用很廣泛,模擬電路中有差分放大電路[1]  一說。差分運算,相應於微分運算。

什麼?你竟然問我什麼是差分!其實你已經會了,剛才在說字首和時就已經講過了[l,r]的和=pre[r]-pre[l-1],這就是差分。

其實這些都只是小技巧,很簡單,也常用,那麼我們繼續拓展一下。

▎二維字首和

在剛才,我們已經學會了一維字首和,那麼增到二維會怎樣?

現在我們知道的都變了,已知乙個矩陣,每次詢問子矩陣的和。

(copy自洛谷zcysky的ppt)

那麼我們可以很容易的知道pre[i][j]=pre[i–1][j]+pre[i][j–1]-pre[i–1][j–1]+a[i][j]的公式,但是為什麼又加上了a[i][j]呢?因為這一部分被減了兩次,所以要加回來。

就是這麼簡單,就不過多解釋了。

第二十一章 資料結構

知識點 1 棧 stack 資料先進後出。方法 is empty 查詢資料是否為空 push 新增資料 pop 移除資料 peek 返回頂部元素 size 查詢資料量 2 佇列 queue 資料先進先出。方法 enqueue 新增元素 dequeue 移除元素 is empty 查詢是否為空 siz...

蘿蔔多優質人才推薦第二十一期

蘿蔔多人才招募計畫 蘿蔔多,葡萄藤旗下的垂直網際網路社群招聘平台,推薦 知根知底的優秀崗位與 值人才。通過蘿蔔多人才評測後,內推至合作企業,歡迎投遞簡歷加入蘿蔔多人才庫。蘿蔔多內推,精準定位崗位需求,跳過初面,綠色通道,直達offer 下乙個蘿蔔坑,就由你來填!2.5年工作經驗北京前端的妹子,是的你...

微軟等資料結構與演算法面試100題 第二十一題

第二十一題 題目 輸入兩個整數n 和m,從數列1,2,3.n 中隨意取幾個數,使其和等於m 要求將其中所有的可能組合列出來.分析 本題目主要考察的是動態規劃知識點。和最長公共子串行題目比較相似,遞迴方程為 sumk m n,n 1 sumk m,n sum m,n 1 與最長公共子串行不同的是題目要...