1. 程式人生 > 其它 >多次查詢無序序列中指定區間內某元素個數

多次查詢無序序列中指定區間內某元素個數

題目

區間內查詢數字的頻率

前期分析

多次查詢 的存在大概率需要進行預處理
下面討論預處理的不同方式

預處理各個元素在各個位置及以前的出現次數

區間 的存在指向了字首和
實施方案
需要列舉每一個可能的元素,遍歷序列預處理該元素對應位置及以前的出現次數
問題
顯然,這樣預處理的方式是O(n^2)的,因此在某些場景下,字首和預處理的過程可能會 TLEMLE,僅適用於資料量較小但查詢次數較多的場景

預處理各個元素出現的位置

上述的預處理方式是很容易想到的,一般是第一思路,但時間複雜度和空間複雜度都很差

實施方案
可以儲存各個元素出現的位置,儲存其在原陣列中的陣列下標

為何降低了複雜度
同第一種預處理方式相比,現在這種方式能夠儲存更多的資訊,可利用資訊越多,可操作的方案越多,複雜度降低的可能性也就越大