der folgende Code funktioniert gut. Das einzige Problem ist, wenn ich einen Array-Wert der Länge 200.000 gebe, dauert es zu lange, um ca. 1 Stunde abzuschließen. Unten ist mein Code.for Schleife dauert zu viel Zeit zu beenden
Ich habe die Datendatei here, die Daten und Daten2 Zeichenfolge Werte enthält. Daten-Array ist in absteigender Reihenfolge angeordnet und Daten2 in aufsteigender Reihenfolge.
public void GetInputs()
{
string data;
string data2;
string[] scores_temp = data.Split(' ');
int[] scores = Array.ConvertAll(scores_temp, Int32.Parse);
string[] alice_temp = data2.Split(' ');
int[] aliceScore = Array.ConvertAll(alice_temp, Int32.Parse);
var distinctScores = scores.Distinct().ToList();
int rank = 0;
for (int j = 0; j <= aliceScore.Length-1; j++)
{
for (int i = distinctScores.Count-1; i >= 0; i--)
{
if (aliceScore[j] >= distinctScores[i])
{
rank = distinctScores.IndexOf(distinctScores[i]);
}
else if (aliceScore[j] < distinctScores[i])
{
rank = distinctScores.IndexOf(distinctScores[i]);
rank += 2;
break;
}
}
if (rank.ToString() == "0") {
Console.WriteLine(rank.ToString().Replace("0", "1"));
} else {
Console.WriteLine(rank); };
}
Console.ReadLine();
}
Wie lang ist _too lang_? –
ca. 1 Stunde .. – maxspan
Wo werden 'data' und' data2' zugewiesen? –