Arrays 这个问题是否存在O(1)解决方案?

Arrays 这个问题是否存在O(1)解决方案?,arrays,algorithm,optimization,Arrays,Algorithm,Optimization,我们得到了一个大小为N1的数组,问题是需要N个查询,解决方案很可能是先做一个预处理来计算可能性,然后在O(1)时间内查询每个可能性。欢迎使用堆栈溢出。请阅读,带上SO,阅读,以及。最后,请你的问题包括你自己解决这个问题的尝试,以及你在这个问题上遇到的问题的描述。哦,请注意,大O符号是关于复杂性的,而不是绝对时间或其他任何东西。对于时间复杂度,O(1)中的1意味着复杂度是恒定的时间,这并不意味着只需要一秒钟。对不起,我是编程新手。我已经编辑了答案并删除了c++14标记。我们不能有多个可能的总和吗?

我们得到了一个大小为N
1的数组,问题是需要N个查询,解决方案很可能是先做一个预处理来计算可能性,然后在O(1)时间内查询每个可能性。

欢迎使用堆栈溢出。请阅读,带上SO,阅读,以及。最后,请你的问题包括你自己解决这个问题的尝试,以及你在这个问题上遇到的问题的描述。哦,请注意,大O符号是关于复杂性的,而不是绝对时间或其他任何东西。对于时间复杂度,
O(1)
中的
1
意味着复杂度是恒定的时间,这并不意味着只需要一秒钟。对不起,我是编程新手。我已经编辑了答案并删除了c++14标记。我们不能有多个可能的总和吗?我们应该退还多少钱?例如,给定[1,5,4,8],我们可以用4或5从1到8(但不能两者都用)。我们将从1到5再到8,我们不能从1到4,因为5出现在4之前,并且大于n 1。我们必须行动,必须采取下一个更大的措施。如果从1移动到8,我将取1,那么下一个更大的元素是5。所以我取5,然后下一个更大的是8,所以取8。是的,你是对的,但我如何预处理它。这是我无法想象的。??如果你知道任何方法,请分享。我会将所有对的最短路径作为预处理。你能解释一下如何用任何例子预处理可能性吗,或者用问题中提到的同一个例子吗?实现Floyd warshall将生成一个距离矩阵,其中每两对最短路径都是,如果[i] [j]为无穷大,则它不可到达,否则检查路径是否小于给定的查询。我不确定是否有更快的动态规划方法。这也称为传递闭包