정수 배열을 가지고 있습니다. int[] Arr={1, 4, 7, 3, 2 }
입니다. 이제 인접한 변은 두 개의 연속 번호 (배열의 번호 시스템에서), 즉 1,2가 인접한 것을 의미합니다. 나는 짧은 코드를 찾아서 최적화하도록 코드의 일부 라인을 썼다.Find 배열의 인접 요소 사이의 최대 거리
static void Main(string[] args)
{
int[] arr = { 1, 4, 7, 3, 2 };
Console.WriteLine("adjacent indices with maximum value is {0}",Solution(arr));
Console.ReadLine();
}
static int Solution(int[] arr)
{
int maxDistance = -1;
int newMaxDistance = 0;
int a = 0, b = 0;
for (int i = 0; i < arr.Length; i++)
{
a = arr[i];
if (i < arr.Length - 1)
{
b = arr[i + 1];
}
for (int j = i + 1; j < arr.Length; j++)
{
if (arr[j] < b && arr[j] > a)
{
maxDistance = j - i;
}
else
{
newMaxDistance = j - i;
}
}
}
if (newMaxDistance > maxDistance)
{
maxDistance = newMaxDistance;
}
return maxDistance;
}
정말이 코드가 C 코드입니까? C#과 비슷합니다. – mch
예 C# –
로 작성되었습니다. 배열의 인접 쌍과 관련하여 비슷한 문제가있었습니다. C# 구현을 찾을 수있는 도움이 필요하면 https://github.com/htoma/codility/blob/master를 참조하십시오. /codility/Code/AdjacentPairs.cs –