Challenge «Limited Subway Surfer» < /h2>
nidhi создал переменную версию Subway Surfer Game. Ее новая версия не находится на железнодорожной дорожке неограниченной длины, скорее ограниченной дорожкой длины N + 1. Как и в оригинальной игре, эта альтернативная версия также имеет три полосы движения. Теперь, чтобы избежать этих ливней, наш игрок должен прыгать в сторону и переключать полосы, так как он не может перейти от I к (i + 1) th точке на той же полосе, если в точке I + 1.
вам дают массив длины n + 1, где я не рассказываю нам. Например, если на дороге присутствуют люка [2] = 1, это означает, что в точке 2 по железнодорожной дорожке присутствует люка на полосе 1. Это означает, что для точки I нет ни одного люка на любой полосе. < /p>
Код: Выделить всё
manholes[0]
формат ввода:
Первая строка ввода содержит целое число t, представляющее количество тестовых случаев. Целые числа, представляющие люки . < /p>
Наш игрок всегда начинается с средней полосы.
Код: Выделить всё
manholes.length == n + 1
[*]
Код: Выделить всё
1
попытка
Мой код для вышеуказанной задачи:
public int minLaneChanges(int[] manholes) {
int N = manholes.length - 1;
int[][] dp = new int[N + 1][3];
// Set initial values
dp[0][0] = dp[0][2] = 0;
// Iterate over the points
for (int i = 1; i
Мой подход состоит в том, чтобы начать в первой строке, а затем я вывещаю каждую строку и столбец из второй строки. Если я вижу препятствия/люб, я установил значение текущего положения на максимальное значение, иначе я установил текущее значение на мин (предыдущая позиция на той же полосе, мин (предыдущие другие полосы движения) +1).
Наконец -то я возвращаю мин среди последней строки.
Мой подход не удается. Для примера ввода выше, он выводит -2147483648.
Что такое ошибка? < /P>
Подробнее здесь: [url]https://stackoverflow.com/questions/77488693/wrong-output-with-dynamic-programming-on-limited-subway-surfer-challenge[/url]