Jika adalah bitsize dari bilangan bulat, maka Anda dapat menghitung waktu Maks dalam .kO(nk)
Pada dasarnya, masalahnya adalah, mengingat , bit integer , temukan sehingga maksimum.nkSii,jSi⊕Sj
Anda memperlakukan setiap sebagai string biner (melihat representasi biner), dan membuat trie dari string tersebut. Ini membutuhkan waktu .SiO(nk)
Sekarang untuk setiap , Anda mencoba menjalankan pelengkap dalam trie yang Anda buat (mengambil cabang terbaik pada setiap langkah pada dasarnya), menemukan sedemikian rupa sehingga maksimum.SjSjj′Sj⊕Sj′
Lakukan ini untuk setiap , dan Anda menemukan jawabannya dalam waktu .jO(nk)
Karena bilangan bulat Anda dibatasi, algoritma ini untuk max pada dasarnya linier, dan begitu pula algoritma untuk min didapat dengan menyortir (karena penyortiran dapat dilakukan dalam waktu linier).
Kebetulan, jika tidak ada batasan, maka Anda dapat mengurangi perbedaan elemen ke versi min.