Вот метод получения массивов буксировки в качестве параметров,
массивы результатов (в порядке убывания), которые содержат дублированные значения, я удалил дубликат и
сохранил его в новом массиве без дубликатов,
второй массив содержит специальные очки игрока.
Мне нужно оценить ее ранг в массиве баллов за
каждая оценка в ее массиве.
Я мог бы сделать это для цикла for, но это требует длительного времени, я пытаюсь использовать метод Array .IndexOf, но я получил -1 для несуществующих значений.
Код:
static int[] climbingLeaderboard(int[] scores, int[] alice)
{
var aliceRecord = new List<int>();
int[] oneArray;
oneArray = scores.Distinct().ToArray();
foreach (var aliceScore in alice)
{
if (aliceScore < oneArray[oneArray.Length - 1])
{
aliceRecord.Add(oneArray.Length + 1);
}
else
{
var rank = Array.IndexOf(oneArray, aliceScore);
if (rank < 0)
{
//Here I need the help
//I comented the un efficient code
//for (int i = 0; i < oneArray.Length; i++)
//{
// if (aliceScore >= oneArray[i])
// {
// aliceRecord.Add(i + 1);
// break;
// }
//
//
//}
}
else
{
aliceRecord.Add(rank + 1);
}
}
}
return aliceRecord.ToArray();
}