我正在java中实现一个简单的算法,它接受一个整数数组,并查找并返回数组中相邻整数的最大乘积。 为此,我首先初始化了一个名为largestProduct的变量,我用它来跟踪当前找到的最大(最佳)产品。我想确保该产品的初始值立即被我找到的第一个产品替换,因此我将初始值设置为一个非常小的数字(-1000000)。该解决方案有效,因为数组中的每个数字都限制在 -1,000 - 1,000 范围内,因此乘积的最小值为 1,000,00。然而,这个解决方案似乎并不理想,如果域发生变化,则需要进行更改。
为了尝试并保证我的初始值被替换,我尝试将largestProduct的初始值设置为null,并且还尝试不给它任何初始值,但这都给了我一个编译错误。 所以我的问题是,有没有办法将变量(int类型)的初始值设置为“无限”小值,或者处理这种情况的最佳方法是什么?
这是我的代码
int adjacentElementsProduct(int[] inputArray) {
int largestProduct = -1000000;
int n = 1;
while(n < inputArray.length){
int tempProduct = inputArray[n-1]*inputArray[n];
if(tempProduct > largestProduct){
largestProduct = tempProduct;
}
n++;
}
return largestProduct;
}
最佳答案
假设数组的长度至少为 2,我将采取的方法是计算第一个乘积 ([1]
*[0]
),然后从 n=2
开始迭代。
关于java - 将最大的产品计数器初始化为 "infinitely"小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42636768/