NZEC错误C#识别

NZEC错误C#识别,c#,arrays,algorithm,sorting,C#,Arrays,Algorithm,Sorting,嘿,我正在尝试做一个代码挑战,我已经编写了以下代码 一个测试用例获得成功,但所有其他测试用例都获得运行时错误NZEC错误。我被这件事困扰了两天。请帮帮我 问题陈述: 鲍勃非常喜欢分类。他总是在想排序数组的新方法。他的朋友拉姆给了他一项具有挑战性的任务。他给Bob一个数组和一个整数K。挑战是在最多K次交换后生成字典最小数组。只能交换连续的元素对。请帮助Bob在最多K次交换后返回字典最小数组 输入: 第一行包含一个整数T(即测试用例的数量)。T测试用例如下。每个测试用例有2行。第一行包含N(数组中的

嘿,我正在尝试做一个代码挑战,我已经编写了以下代码

一个测试用例获得成功,但所有其他测试用例都获得运行时错误NZEC错误。我被这件事困扰了两天。请帮帮我

问题陈述:

鲍勃非常喜欢分类。他总是在想排序数组的新方法。他的朋友拉姆给了他一项具有挑战性的任务。他给Bob一个数组和一个整数K。挑战是在最多K次交换后生成字典最小数组。只能交换连续的元素对。请帮助Bob在最多K次交换后返回字典最小数组

输入:

第一行包含一个整数T(即测试用例的数量)。T测试用例如下。每个测试用例有2行。第一行包含N(数组中的元素数)和K(交换数)。第二行包含数组的n个整数

输出:

打印字典最小数组

示例输入(纯文本链接)

2. 3 2 5 3 1 5 3 8 9 11 2 1 样本输出(纯文本链接)

1 5 3 2 8 9 11 1
公共静态长MOSTswap;
公共静态void Main(字符串[]args)
{
var line1=Console.ReadLine().Trim();
var N=long.Parse(第1行);
var nk=新字符串[N];
变量编号=新字符串[N];
用于(长i=0;iConvert.ToInt64(x)).ToArray();
var numbertotryswap=numbersforcurrent.Where(x=>xne.ConvertToLex()).Concat(new[]{minimum}).Min();
var minimumlex=minlex.First(x=>x.ConvertToLex()==minimum);
foreach(最小值中的变量lex)
{
if(Array.IndexOf(minimumlex,lex)=minimumlex.Length)
{
控制台写入(lex);
}
else控制台。Write(lex+“”);
}
Console.WriteLine();
}
}
public static long[]LexicalMin(long[]word,long swapsleet,long numbertotryswap)
{
如果(swapsleet==0)
{
返回词;
}
var originalLex=word.ConvertToLex();
var checkword=word.ToArray();
var tempword=word.ToArray();
long currentindex=Array.IndexOf(校验字,numbertotryswap);
如果(currentindex!=0)
{
var temp=校验字[currentindex-1];
临时字[currentindex-1]=校验字[currentindex];
临时字[当前索引]=临时;
}
交换左--;
if(tempword.ConvertToLex()current+number.ToString());
返回Convert.ToInt64(结果);
}
}

确切的错误是什么?我怀疑有第三方工具或其他代码您没有向我们展示
LexicalMin
ConvertToLex
绝对不在。你能描述一下测试用例以及通过测试和失败测试之间的区别吗?这是HackerAth上发布的一个挑战。。。而运行时NZEC错误…我找不到anything@ScottLawson其他测试用例将不会显示给我们。。约束条件是1@user1990169lexographic minimal array只是一个数字的图形表示,三个数字1,2,3 lex=123。。。 2 3 2 5 3 1 5 3 8 9 11 2 1 1 5 3 2 8 9 11 1
public static long Mostswaps;
public static void Main(string[] args)
{
    var line1 = Console.ReadLine().Trim();
    var N = long.Parse(line1);
    var nk = new string[N];
    var numbers = new string[N];
    for (long i = 0; i < N; i++)
    {
        nk[i] = (Console.ReadLine().Trim());
        numbers[i] = (Console.ReadLine().Trim());
    }
    for (long i = 0; i < N; i++)
    {
        long n;
        long.TryParse(nk[i].Split(' ')[0], out n);
        long.TryParse(nk[i].Split(' ')[1], out Mostswaps);
        var numbersforcurrrent = numbers[i].Split(' ').Select(x => Convert.ToInt64(x)).ToArray();
        var numbertotryswap = numbersforcurrrent.Where(x => x < numbersforcurrrent.First()).ToList();
        numbertotryswap.Sort();
        var minlex = new List<long[]>();
        var j = 0;
        foreach (var swapnumber in numbertotryswap)
        {
            minlex.Add(LexicalMin(numbersforcurrrent, Mostswaps, swapnumber));
            j++;
        }
        var minimum = minlex.First().ConvertToLex();
        minimum = minlex.Select(ne => ne.ConvertToLex()).Concat(new[] { minimum }).Min();
        var minimumlex = minlex.First(x => x.ConvertToLex() == minimum);
        foreach (var lex in minimumlex)
        {
            if (Array.IndexOf(minimumlex, lex) == minimumlex.Length)
            {
                Console.Write(lex);
            }
            else Console.Write(lex+" ");
        }
        Console.WriteLine();
    }
}


 public static long[] LexicalMin(long[] word, long swapsleft, long numbertotryswap)
    {
        if (swapsleft == 0)
        {
            return word;
        }
        var originalLex = word.ConvertToLex();
        var checkword = word.ToArray();
        var tempword = word.ToArray();
        long currentindex = Array.IndexOf(checkword, numbertotryswap);
        if (currentindex != 0)
        {
            var temp = checkword[currentindex - 1];
            tempword[currentindex - 1] = checkword[currentindex];
            tempword[currentindex] = temp;
        }
        swapsleft--;
        if (tempword.ConvertToLex() < originalLex && swapsleft == 0)
        {
            return tempword;
        }
        tempword = LexicalMin(tempword, swapsleft, numbertotryswap);
        return tempword;
    }

public static class ListHelper
{
    public static long ConvertToLex(this long[] source)
    {
        var result = source.Aggregate(string.Empty, (current, number) => current + number.ToString());
        return Convert.ToInt64(result);
    }
}