机器人路径路径问题
手撸这个提的思想,即用二维数组保存是否被访问过,因为被访问了不能再次去。
然后利用一个单行增加或者单列增加的处理。即减少了双重循环带来的时间复杂问题。
当然了,这里避免不了的空间复杂问题,若需要避免空间复杂问题,避免使用二位数组辅助判断,利用其他方法解决。
public class Solution {
public int movingCount(int threshold, int rows, int cols) {
int[][] arrays=new int[rows][cols];
return isnext(arrays,0,0,threshold);
}
public int isnext(int[][] arry, int i,int j,int thresh){
if(i>=arry.length || j>=arry[0].length){
return 0;
}else{
if(arry[i][j]==1){
return 0;
}
int sval=0;
int r=i;
int c=j;
arry[i][j]=1;
int inext=0;
int jnext=0;
while((i/10) >=0 && i>0){
sval=(i%10) +sval;
i=i/10;
}
while((j/10) >=0 && j>0){
sval=(j%10)+sval;
j=j/10;
}
if(sval >thresh ){
return 0;
}else{
//
return 1+isnext(arry,r+1,c,thresh)
+isnext(arry,r,c+1,thresh);
}
}
}
}
京公网安备 11010502036488号