ETH官方钱包

前往
大廳
主題

LeetCode_2

69號大隻 | 2024-09-13 16:29:32 | 巴幣 2 | 人氣 58

久違的做一下題目,一樣也是中等難度~

標題一看過去就看到數位邏輯的老朋友XOR(異或),而題目主要是在說算出給定值queries範圍內所有值的異或。
所以我就想這還不簡單!直接範圍內異或後塞進去傳會就好,結果跑出來所用的時間非常高
(原程式)


於是我去看了解析其它大佬都是怎麼做的,看到說如果用我這個方法的話時間複雜度會非常高,
為O(n×m),其中 n 是查詢範圍的大小,m 是查詢的次數。
而大佬用的方法是使用 [前綴異或陣列] 提前計算出陣列的部分異或值,讓查詢區間的異或值可以在 O(1) 的時間內求得,總的時間複雜度為 O(n+m)。

O(n×m)直接變成O(n+m)這時間速度也差太多了吧 !! 那這前綴異或陣列是什麼?
我也不知道
所以我去問了偉大的chatgpt,chatgpt是這麼說的



工殺毀

我笨笨的聽不懂,但運算式還是看得懂的,所以我直接拿過來用
(更新後程式)


這運算時間直接從541ms變成2ms差得有夠多!!


總結 : 我又再次見識到了新的東西,雖然還沒弄明白。
(超醜筆記)

創作回應

Penguin JN
哩哩叩叩https://im.bahamut.com.tw/sticker/775/33.png
2024-09-13 21:04:49
69號大隻
我也看不懂https://im.bahamut.com.tw/sticker/1010/06.png
2024-09-16 10:35:54

更多創作