我有一个整数数组,我必须在数组中找到每对的乘积。
Say数组为{1,2,3,4}
,然后输出应为{1*2, 1*3, 1*4, 2*3, 2*4, 3*4}
。
除了暴力之外还有什么方法可以达到上述效果。通过蛮力,我的意思是从数组中取一个数字并循环遍历数组并存储每对数据。这可以在时间上好于O(n^2)
吗?
答案 0 :(得分:0)
如果没有冗余,除了执行n*(n-1)/2
次乘法之外别无选择。
想象一个图表,其中每个项目都是一个节点,每个边缘代表节点连接的乘法。
结果是完整图表,你的输出是每条边的结果,你将得到n*(n-1)/2
。
答案 1 :(得分:0)
你不能。
由于您可以获得O(n ^ 2)个唯一结果,因此您需要O(n ^ 2)个操作才能访问这些数字。
例如,假设2个数组中的所有数字都是唯一的原始数字。