2016-05-05 23 views
1

隣接要素を比較してピークを見つけるためのJavaメソッドを編集しました。しかし、私は、ここで配列の出力ループ要素を別の配列に格納する方法

が編集されている方法である...出力配列に値を格納する際に問題がコメントしている誰もがすでに言ったように、あなたのif文はいけない

public static int[] peakInArray(int[] arr2){ 
    int i; 
    int lenghtInput = arr2.length; 
    int[] peaks = new int[lenghtInput]; 
    for (i = 1; i<arr2.length - 1; i++) { 
     if (arr2[i] > arr2[i - 1] && arr2[i] > arr2[i + 1]); 
     // PROBLEM: store arr2[i] in peaks 
     peaks[i] = arr2[i]; 
    } 
    return peaks; 
} 
+1

あなたが実際に – Sibidharan

+0

に直面している問題は、コンパイル/実行時エラーがありますされて何?もしそうなら、それを貼り付けてください。他の何かが間違っていますか?私たちにあなたが「問題」を持っていることを伝えることは、本当にあいまいです。 – Ironcache

+0

条件が満たされていれば、その値を別の配列に保存したいのですが、同じインデックスiをピークに使用しています! –

答えて

0

、感謝! 私はあなたの助けといくつかの研究でそれを理解しました。ここで

は、最終的な方法です...

public static int[] peakInArray(int[] arr2){ 

    int lengthInput = arr2.length; 
    int[] peaks = new int[lengthInput]; 
    int peakIndex = 0; 

    for (int i = 1; i<lengthInput - 1; i ++) { 
     if (arr2[i] > arr2[i - 1] && arr2[i] > arr2[i + 1]) { 
      //Store arr2[i] in peaks 
      peaks[peakIndex] = arr2[i]; 
      peakIndex++; 
     } 
    } 
return peaks; 
} 
1

私の問題ですあなたが持っている方法で働いている。

if(yourComparison){ 
    peaks[i] = arr2[i]; 
} 

また、結果が必要なだけ大きくなるようにするには、ArrayListを使用する必要があります。例は、このページの下部にあります:

私の問題で私を助けたすべての人へ

http://www.tutorialspoint.com/java/java_arraylist_class.htm

関連する問題