2017-03-06 2 views
0

私は、整数の配列を取り、配列内の隣接する整数の最大積を見つけて返すjavaで単純なアルゴリズムを実装しています。 これを行うには、まず、見つかった現在の最大の(最良の)製品を追跡するために使用する、largestProductという変数を初期化しました。私は、この製品の初期値が直ちに私が見つけた最初の製品に置き換えられていることを確認したいので、私は初期値を非常に小さい数値(-1000000)に設定します。このソリューションは、配列の各数値がドメイン-1,000〜1,000に制限されているため、最小の製品は1,000,00です。しかし、この解決策は、非現実的であると思われ、ドメインが変更された場合は変更する必要があります。"無限"の小さな数字として最大の商品カウンタを初期化する

私の初期値を置き換えることを保証するために、私はmaximProductの初期値を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

Integer.MIN_VALUEおそらくすなわち、intに格納することができる最小値-2 で私のコードです。

3

配列の長さが2以上であると仮定すると、最初の製品([1] * [0])を計算してから、n=2で反復を開始します。

関連する問題