WedX - журнал о программировании и компьютерных науках

Ошибка NZEC C# Идентифицировать

Эй, я пытаюсь выполнить кодовую задачу, и я закодировал следующий код.

Один тестовый пример проходит успешно, но все остальные получают ошибку времени выполнения NZEC error. Я застрял с этим в течение двух дней. Помогите пожалуйста мне.

Постановка проблемы:

Боб очень любит сортировать. Он всегда думает о новых способах сортировки массива. Его друг Рам дает ему сложную задачу. Он дает Бобу массив и целое число K. Задача состоит в том, чтобы создать лексикографический минимальный массив после не более чем K-перестановок. Только последовательные пары элементов могут быть заменены местами. Помогите Бобу вернуть лексикографический минимальный массив, возможный после не более чем K-перестановок.

Ввод:

Первая строка содержит целое число 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
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);
    }
}
28.07.2014

  • Что такое точная ошибка? Я подозреваю, что есть сторонний инструмент или другой код, который вы нам не показываете... LexicalMin и ConvertToLex определенно не в .NET 28.07.2014
  • Можете ли вы описать тестовые случаи и какие-либо различия между тем, который прошел, и тем, который не прошел? 28.07.2014
  • это вызов, размещенный на hackerearth ... и ошибка только в ошибке RUNTIME NZEC ... я ничего не мог найти 28.07.2014
  • @ScottLawson, другие тестовые примеры нам не будут показаны. 28.07.2014
  • @user1990169 user1990169 Лексографический минимальный массив - это просто графическое представление числа вместе с тремя числами 1,2,3 lex = 123 ... 28.07.2014
  • А как насчет тестовых случаев, которые вы создали? Если вы можете создать один, который проходит, и другой, который не работает, проблема может возникнуть прямо у вас, когда вы сравните их. 28.07.2014
  • @user3885104 user3885104 Хорошо, я понял. 28.07.2014
  • Я попытался прокомментировать разные строки и обнаружил, что ошибка произошла в методе LexicalMin (numbersforcurrrent, Mostswaps, swapnumber). Я редактирую сообщение, чтобы показать код метода. 28.07.2014
  • Это может помочь вам понять NZEC: stackoverflow. ком/вопросы/5436207/ 28.07.2014
  • @JasonMArcher я уже читал этот пост ... я не мог понять, что это связано с моим кодом ... я пропустил задание по набору персонала из-за этого ... мне нужно четкое представление о том, где эта ошибка времени выполнения произошла в моем коде ... чтобы я могу получить больше понимания .. 28.07.2014
  • @tnw нет, все это пользовательские методы 28.07.2014

Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: [email protected]