【发布时间】:2017-06-19 10:34:21
【问题描述】:
int arr[] = {10, 10, 1, 3};
假设:假设每个 int 都是正数。假设数组至少包含 3 个整数
从上述数组中的三个整数中找出您可以得到的最高乘积。我们应该返回 300(我们通过取 10 ∗ 10 ∗ 3 得到)。
我想用蛮力方法解决这个问题。基本上,我想将每个整数乘以其他整数,然后将该乘积乘以其他整数。谁能告诉我如何使用嵌套的 3 个循环来完成此操作因为我想在尝试优化方法之前先了解它是如何使用蛮力完成的。
谢谢。
【问题讨论】:
-
为什么不对数组进行排序,排序后使用3个最大值?
-
可能的范围是多少?任何元素都可以是负数吗?元素可以为零吗?
-
@YCF_L:如果允许负数和零,将无法正常工作。目前这个问题无法回答。
-
@Anonymous 为什么要在 O(n) 时间和 O(1) 额外空间内解决它时进行排序?
-
有人可能应该只是将蛮力解决方案发布为Find maximum product of 3 numbers in an array 的答案,然后我们可以将其作为副本关闭,并将此问题的所有解决方案放在一个地方,因为这里有一个解决方案,其他地方的一些解决方案和其他地方的更多解决方案没有多大意义。