劍指 Offer 13 機械人的運動範圍

2021-10-17 02:32:45 字數 1259 閱讀 3269

數字和計算:

傳統辦法:

int sums(int x) 

return s;

}

改進:

(x + 1) % 10 != 0 ? s_x + 1 : s_x - 8;
機械人可 僅通過向右和向下移動,訪問所有可達解 。方法一:廣度優先遍歷

class solution ); //i=0,j=0,sum_i=0,sum_j=0

while(!queue.isempty()) ); //下面的點加入佇列

queue.add(new int); //右邊的點加入佇列}}

return res;}}

方法二:深度優先遍歷

class solution 

public int dfs(int i, int j, int sum_i, int sum_j)

}

回溯返回值為1+右邊可達數目+左邊可達數目。深度優先遍歷傳統版:

熟悉了遞迴之後,直接就寫出了下面這版:

class

solution

public

void

dfs(

int i,

int j,

int si,

int sj,

int k)

}

發現跟之前寫的都不一樣,說明有自己的理解,成長了!

劍指offer13機械人的運動範圍

地上有乙個m行n列的方格,從座標 0,0 到座標 m 1,n 1 乙個機械人從座標 0,0 的格仔開始移動,它每次可以向左 右 上 下移動一格 不能移動到方格外 也不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但它不能進入...

劍指 Offer 13 機械人的運動範圍

題目描述 地上有乙個m行n列的方格,從座標 0,0 到座標 m 1,n 1 乙個機械人從座標 0,0 的格仔開始移動,它每次可以向左 右 上 下移動一格 不能移動到方格外 也不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但...

劍指 Offer 13 機械人的運動範圍

地上有乙個m行n列的方格,從座標 0,0 到座標 m 1,n 1 乙個機械人從座標 0,0 的格仔開始移動,它每次可以向左 右 上 下移動一格 不能移動到方格外 也不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但它不能進入...