java - 从数组中的三个整数中找到可以得到的最高乘积 - 如何使用蛮力求解

标签 java algorithm

int arr[] = {10, 10, 1, 3};

假设:假设每个整数都是正的。假设数组包含至少 3 个整数

从上面数组中的三个整数中找出你能得到的最高乘积。我们应该返回 300(通过取 10 * 10 * 3 得到)。

我想用蛮力法解决这个问题。基本上,我想将每个整数乘以其他整数,然后将该乘积乘以其他整数。任何人都可以告诉我如何使用嵌套的 3 个循环来完成这件事因为我想在尝试优化方法之前先了解如何使用蛮力来完成。

谢谢。

最佳答案

使用三个 for 循环:

public static Integer highestProduct(int array[]) 
{
    if((array==null)||(array.length<3))
    {
        return null;
    }

    else
    {
        int max_product = Integer.MIN_VALUE;
        for(int i=0;i<array.length;i++)
        {
            for(int j=i+1;j<array.length;j++)
            {
                for(int k=j+1;k<array.length;k++)
                {
                    int product = array[i]*array[j]*array[k];
                    if(product>=max_product)
                    {
                        max_product = product;
                    }
                }
            }
        }
        return max_product;
     }
 }

关于java - 从数组中的三个整数中找到可以得到的最高乘积 - 如何使用蛮力求解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44628247/

相关文章:

java - Java 中的多态性、数据类型和内存

python - 具有重复元素的简单选择排序?

algorithm - 使用线段树求范围内小于 k 的所有数字的总和

c - 通过 MPI 的并行、分支和绑定(bind)旅行推销员

c - C语言有哪些比较耗时的操作?

java - 错误 - trustAnchors 参数必须非空

java - jconsole 如何发现本地系统上启用 JMX 的进程?

java - 当应用程序是更改的所有者时禁用 Google 日历推送通知

algorithm - 如果任何节点最多有 2 条边,则找出是否形成循环的更快方法?

java - 对于 Selenium,我需要启动 java 服务器吗?