Закончились бесплатные истории? Вот моя Ссылка на друга.

Перед тем, как приступить к работе с кодом, это руководство по Java для новичков.

Я опубликовал электронную книгу. Сборник 100 проблем программирования Java (Интервью), которые были решены. Я дал четкое объяснение и код в книге. Поверьте, это подтолкнет вас к работе в компании вашей мечты.

Нажмите на эту ссылку, чтобы перейти на целевую страницу. Это полностью бесплатно при использовании kindle amazon. Взгляните на это.

Это совершенно бесплатно, если у вас Безлимитный план Kindle. Его стоит прочитать, если вы хотите изучить java на своем мобильном телефоне и если вы не можете брать книги в мягкой обложке в каждое место, куда вы путешествуете. Теперь перейдем к проблеме

Справедливые пайки

Вы - доброжелательный правитель замка Ранкхакер и сегодня раздаете хлеб. Ваши подданные в очереди, и у некоторых из них уже есть несколько буханок.

Времена тяжелые, и запасы еды в вашем замке сокращаются, поэтому вы должны раздавать как можно меньше хлебов в соответствии со следующими правилами:

  1. Каждый раз, когда вы даете буханку хлеба какому-либо человеку i, вы также должны давать буханку хлеба человеку, находящемуся непосредственно перед или позади них в очереди (т. Е. Лицам i + 1 или i-1).
  2. После того, как весь хлеб будет распределен, у каждого человека должно быть четное количество буханок.

Зная количество хлебов, уже имеющихся у каждого гражданина, найдите и распечатайте минимальное количество хлебов, которое вы должны раздать, чтобы удовлетворить двум правилам, указанным выше. Если это невозможно, выведите НЕТ.

Формат ввода

Первая строка содержит целое число N, количество тем в строке хлеба.

Вторая строка содержит N целых чисел B [i], разделенных пробелом.

Формат вывода

Выведите единственное целое число, обозначающее минимальное количество хлебов, которое вы должны раздать соседним людям в строке, чтобы у каждого человека было четное количество хлебов. Если это невозможно, выведите НЕТ.

Код

Объяснение

Задача состоит в том, чтобы узнать, какое количество буханок хлеба необходимо, чтобы весь массив равномерно делился на 2 (i, e). Весь массив должен содержать четные числа.

Чтобы решить эту проблему, вы должны проверить, все ли числа четны. Если вам попалось нечетное число. Увеличьте значение его позиции и следующего на 1.

Повторив этот шаг, снова пройдитесь по всему массиву. И найдите, есть ли какие-либо нечетные числа. Если присутствует, вы не можете преобразовать данный массив в четные числа. . Если есть нечетные числа, присутствуют, то желаемый результат достигается.

Выведите минимальное количество буханок, которое вы должны раздать соседям в очереди, чтобы у каждого человека было четное количество буханок.

Алгоритм

  • Прочтите значение N. Считайте значение N целых чисел, разделенных пробелом B [i].
  • Инициализируйте значение count равным нулю.
  • Для каждого элемента в массиве B [i] проверьте, делится ли он на 2 или нет. Если он делится, перейдите к следующему элементу.
  • Иначе Измените значение текущего элемента и следующего элемента, добавив 1.

Для каждой встречи с нечетным числом увеличивайте значение count.

  • По завершении обхода выведите значение (count * 2). Если в массиве B нет нечетных чисел, выведите Иначе.


Работа с Кодексом

5
2 3 4 5 6

count = 0;

Итерация 1:

B[0] = 2%2==0;

Продолжить;

Итерация 2:

B[1] = 3%2==1;

B [1] ++; B [2] ++; count ++;

B [1] = 4; B [2] = 5; count = 1;

Итерация 3:

B[2] = 5%2==1;

B [2] ++; B [3] ++; count ++;

B [2] = 6; B [2] = 6; count = 2;

Итерация 4:

B[3] = 6%2==0;

Продолжить;

Итерация 5:

B[4] = 6%2==0;

Продолжить;

В конце обхода

Счетчик = 2;

Напечатать Счетчик * 2;

2*2=4

Результат: 4

Заключение

Не существует единого решения проблемы. Работайте над Кодексом. Поделись со мной своими мыслями. Эти проблемы получены от HackerRank.



Вы можете следить за Домом кодов, чтобы получать обновления, когда мы публикуем новые задачи по программированию. Также вы можете присылать нам свои решения или идеи по любой проблеме, связанной с кодированием. Мы были бы счастливы их прочитать. ;)

Посетите предыдущую задачу, чтобы узнать, Как 1 переменная используется для решения триплетов.