我的算法应该从 input 中的当前数字中找到最大的正确数字,例如,给定以下输入:array
int[]
5、9、6、1、3、2
我的算法将输出:
9、6、3、3、2、2
这是我当前的代码:
public static int[] FindGreatestRightNumber(int[] input)
{
var output = new int[input.Length];
for (var i = 0; i < input.Length; i++)
{
int maxRightNumber = (i == input.Length - 1 ? input[i] : 0);
for (var j = i+1; j < input.Length; j++)
{
var currentNumber = input[j];
if (maxRightNumber < currentNumber)
maxRightNumber = currentNumber;
}
output[i] = maxRightNumber;
}
return output;
}
我被告知它可以更快,如何?任何的想法?
更新:请不要LINQ
在您的答案中使用,我想熟悉使用简单代码、否LINQ
、IEnumerable
扩展方法等更快地解决问题的方法。