国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

機(jī)器人的運(yùn)動(dòng)范圍

2019-11-08 02:41:18
字體:
供稿:網(wǎng)友

題目描述

地上有一個(gè)m行和n列的方格。一個(gè)機(jī)器人從坐標(biāo)0,0的格子開始移動(dòng),每一次只能向左,右,上,下四個(gè)方向移動(dòng)一格,但是不能進(jìn)入行坐標(biāo)和列坐標(biāo)的數(shù)位之和大于k的格子。 例如,當(dāng)k為18時(shí),機(jī)器人能夠進(jìn)入方格(35,37),因?yàn)?+5+3+7 = 18。但是,它不能進(jìn)入方格(35,38),因?yàn)?+5+3+8 = 19。請問該機(jī)器人能夠達(dá)到多少個(gè)格子?

算法解析:從(0, 0)開始利用回溯法檢查四周的結(jié)點(diǎn)。

代碼如下:

public int movingCount(int threshold, int rows, int cols) { boolean[] visited = new boolean[rows * cols]; int count = movingCountCore(threshold, rows, cols, 0, 0, visited); return count; } public int movingCountCore(int threshold, int rows, int cols, int row, int col, boolean[] visited) { int count = 0; if (checkDigits(threshold, rows, cols, row, col, visited)){ visited[row * cols + col] = true; count = 1 + movingCountCore(threshold, rows, cols, row, col - 1, visited) + movingCountCore(threshold, rows, cols, row - 1, col, visited) + movingCountCore(threshold, rows, cols, row, col + 1, visited) + movingCountCore(threshold, rows, cols, row + 1, col, visited); } return count; } public boolean checkDigits(int threshold, int rows, int cols, int row, int col, boolean[] visited){ if (row >= 0 && row < rows && col >= 0 && col < cols && getDigitSum(row) + getDigitSum(col) <= threshold && !visited[row * cols + col]){ return true; } return false; } public int getDigitSum(int number){ int sum = 0; while (number > 0){ sum += number % 10; number /= 10; } return sum; }
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 富源县| 大竹县| 广南县| 米林县| 浑源县| 清镇市| 漯河市| 通化市| 白城市| 涡阳县| 甘洛县| 马龙县| 获嘉县| 华安县| 兰西县| 长岭县| 班玛县| 阳曲县| 博罗县| 霞浦县| 新田县| 阳原县| 梅河口市| 沙河市| 枝江市| 秦安县| 利辛县| 靖宇县| 行唐县| 屯门区| 吉木萨尔县| 平山县| 三原县| 遵义市| 年辖:市辖区| 大庆市| 贵阳市| 渭南市| 蛟河市| 福清市| 科技|