2010-05-25 53 views
0

在我計算元素的最長行的方法中。一維數組填充隨機值(0或1)。該方法查找最長的行(0或1,最長的行)。
例如:在一維數組中找到2個位置

1110100最長行會是3(3 * 1)
0110000最長行是4(4 * 0)

對於1110100在陣列中的位置將是0到2 爲0110000數組中的位置將是3至6

我一直在試圖與foreach循環,for循環,等等,但我似乎無法得到兩者的適當指標,似乎無法顯示b其他職位正確。

相似元素的最長的連續被計算爲以下based on my previous question

public int BerekenDeelrij (int [] table) 
{ 
    int count = 0; 
    int value = 0; 
    int largest = 0; 

    for (int i=0; i < tabel.Length; i++) 
    { 
     if (value == tabel[i]) 
      counter + +; 
     else 
     { 
      largest = Math.Max largest (largest, counter); 
      final value = value 
      count = 1; 
     } 
    } 
    return Math.Max(largest, counter); 
} 
+1

此代碼示例應該是C#嗎? – 2010-05-25 09:15:29

+0

這是什麼意思? – Chris 2010-05-25 09:44:28

+0

他在問代碼是用什麼語言編寫的。我猜他是在問,因爲它不是有效的C#。 – ANeves 2010-05-25 10:37:55

回答

2

如果用常規for(;;)更換foreach()你立刻擁有可在你需要他們的時刻你的指數。

1

我沒有張貼完整的代碼,因爲這是標記的功課,而是一個完全不同的方法來解決這個問題,是要找到連續項的所有事件,並將其聚合成一個新的數組:

[0, 1, 1, 0, 0, 0, 0] => ["0", "11", "0000"] 

然後,你可以隨便點,通過item.Length,降,選擇頂部1個項目,即 「0000」

之後,加入聚合陣列

["0", "11", "0000"] => "0110000" 

然後從那裏返回joinedResult.IndexOf(longestItem),該索引+ longestItem.Length

+0

謝謝repsonse。雖然它使你的觀點完美無缺,恐怕我還沒有深入C#並尋找更直接的方法。問候。 – Chris 2010-05-25 09:13:20