java - 将最大的产品计数器初始化为 "infinitely"小数

标签 java initialization int

我正在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/

相关文章:

java - JFrame 在 thread.sleep() 之前未更新

c++ - 没有默认构造函数时,使用垃圾数据初始化对象

java - 有没有一种很好的方法可以在不将整数转换为字符串的情况下用零填充整数?

java - 在 RxJava 的 .flatMap() 运算符中处理两种不同类型

Java,在没有try block 的情况下使用throw

java - 如何从 Akka Streams Sink 中抛出的异常中恢复?

arrays - 在 Swift 中按降序创建数组的最短方法

c++ - g++ 编译器中的 “Uninitialized use” 警告

php - 将逗号分隔的字符串转换为 int PHP?

java - Java中使用foreach对整数数组进行排序