2017-03-14 18 views
-3
int count = 0; 
    for (int i = 0; i < arr.length; i++) { 
     for (int j = 0; j < arr.length; j++) { 
     if (arr[i] == arr[j] && i != j) { 
      return false; 

     }else count++; 
     } 
    } return (count == 3); 

タスクに3つの重複を検索:整数とarray.Fill配列のサイズを表す整数を指定すると、配列が互いに横に3回を複製含まれている場合はtrueを返します。 このコードはうまく動作しません。重複が2回見つかった場合は真実を与えられます。私は3回、お互いに次が必要です!! Some1私を喜ばせることができますか?次の相互

+0

なぜあなたはO(N * N)アルゴリズムを使用しましたデュース? – Bathsheba

+0

@Abubakkar:いいえ、いや、いや! – Bathsheba

+5

i、i + 1、i + 2の値を比較すると何が問題になりますか? – Thomas

答えて

5

はこれについて何:

for (int i = 0; i < arr.length - 2; i++) { 
    if (arr[i] == arr[i + 1] && arr[i] == arr[i + 2]) { 
     return true; 
    } 
} 
return false; 
+0

UV。ピギーが好きですが、私は 'i = 2;私は Bathsheba

+0

ありがとうございます!あなたはとても助かります! – szarospista

+0

しかし、forループでなぜi = 2であるのか説明できますか? – szarospista

-1
for(int i=0;i<arr.length-2;i++){ 
    if((arr[i]==arr[i+1])&& (arr[i]==arr[i+2])){ 
     return true; 
    } 
} 
return false; 

この方法では、我々は一度だけ、配列を確認し、これがパフォーマンスを向上させます。私たちは平易な英語で、ここでやっていることは次のとおりです。

例(これはarray.length-2が何のためにあるのかである)「の数は彼を次の二つに等しいかどうかをチェック」、そして我々は、アレイの外に行く前に停止しますの配列のために6つの数字、我々は一致する番号を格納するためのArrayListを使用して

[0,1,2] 
[1,2,3] 
[2,3,4] 
[3,4,5] 
+0

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – DimaSan

+0

最初にsnarkyのコメントを削除すると、私はフォークがdownvotesを後退させると確信しています。します。 – Bathsheba

+0

Downvoteをupvoteに変換しました。編集していただきありがとうございます。 – Bathsheba

1

ソリューションをチェックし、

int[] arryOne={1,2,3,4,4,4,5,5,5,6,6,7,7,7,8,9,9,9,19,19,19,21,21,30,45,10,10,10}; 
    ArrayList<Integer> arryTwo=new ArrayList<Integer>(); 
    for (int x=0;x<=arry.length-1;x++) 
    { 
     if(arryOne[x]==arryOne[x+1] && arryOne[x]==arryOne[x+2] && x!=arry.length-2) 
     { 
      arryTwo.add(arry[x]); 
      x=x+2; 

     }  
    } 
    System.out.println("The number which is repeating three times in the array is = "); 
    for (int valInArrayList: arryTwo) 
    { 
     System.out.print(valInArrayList + ", "); 
    }