在HackerRank上執行this problem,我的O(n)解決方案正在通過除最後三個測試用例之外的所有測試用例,它與運行時錯誤一起失敗。不幸的是,我無法看到運行時錯誤是什麼。當我在Visual Studio中運行測試時,我沒有遇到任何錯誤。任何想法可能導致這個問題?任何想法,爲什麼我在這裏得到一個運行時錯誤?
using System;
using System.Collections.Generic;
using System.IO;
class Solution
{
public static void Swap(int[] A, int i1, int i2)
{
int temp = A[i1];
A[i1] = A[i2];
A[i2] = temp;
}
static void Main(String[] args)
{
int[] parameters = Array.ConvertAll(Console.ReadLine().Split(' '), Int32.Parse);
int n = parameters[0];
int k = parameters[1];
int[] arr = Array.ConvertAll(Console.ReadLine().Split(' '), Int32.Parse);
int[] pos = new int[n + 1]; // pos[m] is the index of the value m in arr
for(int i = 0; i < arr.Length; ++i)
{
pos[arr[i]] = i;
}
for(int i = 0; i < arr.Length && k > 0; ++i, --n)
{
if(arr[i] == n)
continue;
int j = pos[n];
Swap(pos, arr[i], n);
Swap(arr, i, j);
--k;
}
Console.WriteLine(string.Join(" ", arr));
}
}
測試失敗後,他們確實允許您從測試用例中「購買」輸入和期望的輸出,並使用您在網站上賺取的一些積分。我知道這不是你所問的,但是這是一個可以考慮的選擇。 –
我想無效的'int'輸入? – slawekwin