【剑指 offer】面试题13:机器人的运动范围(Java)
地上有一個(gè)m行n列的方格,從坐標(biāo) [0,0] 到坐標(biāo) [m-1,n-1] 。一個(gè)機(jī)器人從坐標(biāo) [0, 0] 的格子開(kāi)始移動(dòng),它每次可以向左、右、上、下移動(dòng)一格(不能移動(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。請(qǐng)問(wèn)該機(jī)器人能夠到達(dá)多少個(gè)格子?
?
示例 1:
輸入:m = 2, n = 3, k = 1
輸出:3
示例 1:
輸入:m = 3, n = 1, k = 0
輸出:1
提示:
1 <= n,m <= 100
0 <= k?<= 20
代碼:
class?Solution?{
????public?int?movingCount(int?m,?int?n,?int?k)?{
????????boolean?visited[][]?=?new?boolean[m][n];
???????
????????return??find(m,n,k,0,0,visited);
????}
????public?int??find(int?m,int?n,int?k,int?i,int?j,boolean?visited[][])
????{
????????if(i==m||j==n||i<0||j<0||(i/10+i%10+j/10+j%10)>k||visited[i][j]==true)
????????{
????????????return?0;
????????}
????????visited[i][j]?=?true;
????????return?find(m,n,k,i+1,j,visited)+find(m,n,k,i-1,j,visited)+find(m,n,k,i,j-1,visited)+find(m,n,k,i,j+1,visited)+1;
?
????}
}
總結(jié)
以上是生活随笔為你收集整理的【剑指 offer】面试题13:机器人的运动范围(Java)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Leetcode--128. 最长连续序
- 下一篇: Leetcode--1371. 每个元音