Dhenu
BAN USERint[] arrayA = { 32, 24, 8, 12 };
int[] arrayB = { 13, 25, 32, 11 };
int[] sortedArrayA = arrayA.OrderBy(a => a).ToArray();
int[] sortedArrayB = arrayB.OrderBy(a => a).ToArray();
int[] answerA = new int[arrayA.Length];
List<int> lesserThanB = new List<int>();
int sortedArrayBStartPosition = 0, count = 0;
bool isGreaterThanAnElementInB = false;
for (int a = 0; a < sortedArrayA.Length; a++)
{
isGreaterThanAnElementInB = false;
for (int b = sortedArrayBStartPosition; b < sortedArrayB.Length; b++)
{
if (sortedArrayA[a] > sortedArrayB[b])
{
answerA[Array.IndexOf(arrayB, sortedArrayB[b])] = sortedArrayA[a];
isGreaterThanAnElementInB = true;
sortedArrayBStartPosition = b + 1;
break;
}
}
if (!isGreaterThanAnElementInB)
{
lesserThanB.Add(sortedArrayA[a]);
}
}
for (int i = 0; i < answerA.Length; i++)
{
if (answerA[i] == 0)
{
answerA[i] = lesserThanB[count];
count++;
}
}
- Dhenu April 11, 2017