私は C# を学習しており、次の問題を解決しようとしています: 繰り返しメンバーの最長部分配列を返します。たとえば、配列が {1,2,2,3,4,4,4} の場合、{4,4,4} を返す必要があります。 . 私はこれをやろうとしましたが、最長ではなく最初の部分配列を返します。これまでに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 私はちょうど最長の配列の長さを返そうとしています