下面我列出了一个我遇到麻烦的问题。这个问题是一个远离 O(n^2) 解决方案的简单嵌套循环,但我需要它是 O(n)。任何想法应该如何解决?是否有可能形成两个方程?
给定一个整数数组 A,检查是否有两个索引 i 和 j 使得 A[j] = 2∗A[i]。例如,在数组 (25, 13, 16, 7, 8) 上,算法应该输出“true”(因为 16 = 2 * 8),而在数组 (25, 17, 44, 24) 上,算法应该输出“错误的”。描述这个问题的算法,其最坏情况下的运行时间优于 O(n^2),其中 n 是 A 的长度。
谢谢!