我正在學習C#並嘗試解決以下問題: 返回重複成員的最長子數組,例如,如果數組是{1,2,2,3,4,4,4},我應該返回{4,4,4}。我試圖做到這一點,但它返回的是第一個子數組,而不是最長的。我所瞭解的C#至今:返回重複成員C#的最長子數組
- 循環
- 條件語句
- 陣列
任何想法?
編輯:到目前爲止我的代碼 編輯:是的,我知道一些關於期多維數組
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sequence
{
class Sequence
{
static void Main(string[] args)
{
Console.Write("Enter size:");
int size1 = int.Parse(Console.ReadLine());
int[] array1 = new int[size1];
for (int i = 0; i <= size1-1; i++)
{
Console.Write ("Ënter Number:");
array1[i]=Int32.Parse(Console.ReadLine());
}
int bestLenght = 0;
int bestStart = 0;
int lenght = 0;
int start=0;
for (int i = 0; i < size1 - 2; i++)
{
if (i == 0 && array1[i] == array1[i + 1])
{
start = 0;
lenght = 2;
if (bestLenght < lenght)
{
bestLenght = lenght;
bestStart = 0;
}
}
else if (i != 0 && lenght != 0 && array1[i] == array1[i - 1] && array1[i + 1] == array1[i])
{
lenght++;
if (bestLenght < lenght)
{
bestLenght = lenght;
bestStart = start;
}
}
else if (i != 0 && array1[i - 1] != array1[i] && array1[i] == array1[i + 1])
{
start = i;
lenght = 2;
if (bestLenght < lenght)
{
bestLenght = lenght;
bestStart = start;
}
}
else
{
lenght = 0;
}
}
Console.WriteLine(bestLenght);
}
}
}
Cureently我想只是返回最長陣列的lenght
因此,請顯示一些代碼,你到目前爲止嘗試 – sloth 2012-08-16 09:17:13
親愛的答覆者,作爲一個初學者,請避免LINQ。 – 2012-08-16 09:17:35
你知道多維數組嗎? – Ketchup 2012-08-16 09:18:15