我的作业有问题,需要我解决类似于 range-minimum-query 的问题。问题大致描述如下:
我应该编写一个 java 程序,它读取大量整数(大约 100,000)并将它们存储到一些数据结构中。然后,我的程序必须回答给定范围 [i,j] 中的最小数字的查询。我已经成功地设计了一种算法来解决这个问题。但是,它还不够快。
我的算法的伪代码如下:
// Read all the integers into an ArrayList
// For each query,
// Read in range values [i,j] (note that i and j is "actual index" + 1 in this case)
// Push element at index i-1 into a Stack
// Loop from index i to j-1 in the ArrayList (tracking the current index with variable k)
[Begin loop]
// If element at k is lesser than the one at the top of the stack, push the element at k into the Stack.
[End of loop]
有人可以告诉我我能做什么,以便我的算法足够快来解决这个问题吗?
可以在此链接中找到分配文件:http: //bit.ly/1bTfFKa
我已经被这个问题难住了好几天。任何帮助将非常感激。谢谢。