我的算法應該發現從當前數最大權數在輸入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;
}
有人告訴我,這可能是快很多,怎麼樣?任何想法?
UPDATE:請不要在你的答案使用LINQ
,我想熟悉更快的方法來解決使用簡單的代碼,沒有LINQ
,IEnumerable
擴展等方法
@Saen:該algorthm是:'對於每個輸入數,輸出的最大的* *下列數字,或輸出的輸入數目,如果沒有以下numbers.',至少根據給定的例子。 – 2013-03-08 08:32:18
是的,我想知道爲什麼輸出序列中沒有'5'。鑑於修正後的算法,我不確定它可能會更快。 – 2013-03-08 08:34:13