যেহেতু ধ্রুবক, আমরা সীমার মধ্যে প্রতিটি উপাদান গণনা সংরক্ষণ করতে পারেন .. 0 মি জন্য 0 ≤ মি < এন মধ্যে 0 .. এন মধ্যে হে ( ঢ ট ) = হে ( ঢ ) সময় এবং স্থান। প্রাথমিক পর্যবেক্ষণ যে আপনি একটি দ্বি-মাত্রিক অ্যারে করতে পারেন মধ্যে হে ( ঢ ট ) সময়, তারপর পার্থক্য খোঁজার দ্বারা ক্যোয়ারী রেঞ্জ আমি , ঞ ধ্রুব সময় সূচকের।ট0 .. মি0 ≤ এম < এন0 .. এনও ( এন কে ) = ও ( এন )count[pos][elem] = occurences of 'elem' in the indices 0..posও ( এন কে )i , j
প্রাক-প্রক্রিয়াকরণ
initialise count[pos][elem] to 0 for all elem, pos
for pos=0 to n
for num=0 to k
count[pos][num] = (0 if pos==0 else count[pos-1][num])
count[pos][arr[pos]] ++
প্রশ্ন
(ধরে নিই আমি, জে উভয়ই অন্তর্ভুক্ত সীমা)
if i == 0
return count[j][m]
else
return count[j][m] - count[i-1][m]
টcountও ( লগএন )ও ( লগএন )
এই উত্তর নিয়ে যে কোনও সমস্যার জন্য ক্ষমা চাইছি, এটি আমার প্রথম।