Ассортимент робота Java Version, конкретный контент заключается в следующем
На земле есть квадрат из M и N столбцов. Робот начинает перемещаться из сетки с координатами 0 и 0 и может перемещать только одну сетку влево, вправо, верхние и нижние направления за раз, но не может войти в сетку с суммой цифр координат строки и координат столбцов, превышающих K. Например, когда K составляет 18, робот может войти в сетку (35,37), потому что 3+5+3+7 = 18. Однако он не может войти в квадрат (35,38), потому что 3+5+3+8 = 19. Сколько сетей может достичь робота?
Проблемное решение:
1. Во -первых, определите, соответствует ли текущая позиция условия входа. Если условия входа выполняются, продолжайте судить о четырех позициях вокруг него, вниз, влево и вправо (кроме границы). Если не удовлетворен, это означает, что выбор текущего положения неверен.
2. В каждой попытке объявить множество флагов для записи мест, которые были посещены.
3. Существует три условия для попыток продолжить: координаты являются законными в матрице, координаты соответствуют условиям входа, а позиции координат не были доступны.
Общедоступный класс решения {public int rovessCount (int threshold, int rows, int cols) {if (threshold <0 || rows <= 0 || cols <= 0) {return 0; } int count = 0; Boolean [] flag = new Boolean [Rows*Cols]; for (int i = 0; i <Rous*cols; i ++) {flag [i] = true; } count = двигаться (порог, 0, 0, ряды, cols, flag); возврат подсчет; } public int moving (int t, int row, int col, int rows, int cols, boolean [] flag) {int count = 0; if (isallow (t, row, col, rows, cols, flag)) {flag [row*cols+col] = false; count = 1+rovking (t, row-1, col, rows, cols, flag)+движения (t, row, col-1, rows, cols, flag)+движения (t, row+1, col, rows, cols, flag)+движущийся (t, row, col+1, rows, cols, flag); } return Count; } // Рассчитайте сумму цифр координат и вернуть результат сравнения с порогом общедоступной логии Isallow (int t, int row, int col, int rows, int cols, boolean [] flag) {if (row> Rows || row <0 || col> cols || col <0 || row*cols+cols*cols*cols-1 || } int sum = 0; char [] chs = (row+""). toCharraray (); char [] chs1 = (col+""). toCharRary (); for (char ch: chs) {sum += символ.getnumericvalue (ch); } for (char ch1: chs1) {sum += символ.getnumericvalue (ch1); } return sum <= t; }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.