2016-04-17 9 views
-5

ランダムに挿入された配列とデータがあります。私たちはnullインデックスの最大範囲を見つける必要があります、私は分かりません。これをどうすれば解決できますか?配列内で最大のヌル範囲を特定する方法は?

私が説明しよう。質問...

質問:あなたは配列するには、以下のライセンス番号を追加すると任意のライセンス番号 なしで最大のインデックス範囲の決定、ライセンス番号が追加されていないインデックスの最大範囲を決定する。たとえば、1255〜1264の範囲のインデックスにライセンス番号が追加されておらず、これが最大の範囲である場合は、この範囲を決定して印刷する必要があります。

public void maxNull() { 
    int start, end, result; 
    for (int i = 0; i < hasharr.length; i++) { 
     if (hasharr[i] == null) { 
      while (hasharr[i] == null) { 
       start = i; 
       i++; 

      } 
     } 

    } 

} 
+1

あなたはこれまでに何をしようとしたのですか? –

+0

私は何かを書こうとしましたが、それは絶対に間違っています:) –

答えて

0

このコードはあなたを助ける必要があります。

//We initialize both start and end with -1, which means there was no such range 
//found yet. If at the end of the search their value is unchanged, then there 
//are no null values in the set 
int finalStart = -1; 
int finalEnd = -1; 
//rangeLength represents the length of the final range, which is 0 initially 
int rangeLength = 0; 
int start = -1; 
for (int i = 0; i < hasharr.length; i++) { 
    if (hasharr[i] != null) { 
     if (start >= 0) { 
      if (rangeLength < i - start + 1) { 
       finalStart = start; 
       finalEnd = i; 
       rangeLength = start + i; 
      } 
      start = -1; 
     } 
    } else if (start == -1) { 
     start = i; 
    } 
} 
if ((start >= 0) && (rangeLength < hasharr.length - start)) { 
    finalStart = start; 
    finalEnd = hasharr.length - 1; 
} 
+0

注:この質問は最大のヌル範囲を求めています。 –

+0

@AndyTurner、回答が十分説明的ではないことを指摘してくれてありがとう。問題を解決するために私の答えを編集しました。 –

+1

待って、何?私が指摘したように、あなたはちょうどそれが最大のヌル範囲を見つけると言っています - これは私が指摘したものとは正反対です。これは明らかに 'start'を非ヌル値に置き、ヌル値を見つけるまで続きます。 –

関連する問題