rn sum;
}
inline bool visite_check(struct visite * v, int row, int col) {
if (row >= 0 && row < v->rows && col >= 0 && col < v->cols && !v->visited[row * v->cols + col]) {
return get_digit_sum(row) + get_digit_sum(col) <= v->threshold;
}
return false;
}
int visite_moving(struct visite * v, int row, int col) {
if (!visite_check(v, row, col))
return 0;
v->visited[row * v->cols + col] = true;
return 1 + visite_moving(v, row, col - 1)
+ visite_moving(v, row, col + 1)
+ visite_moving(v, row - 1, col)
+ visite_moving(v, row + 1, col);
}
int
moving_count(int m, int n, int threshold) {
if (m < 0 || n < 0 || threshold < 0)
return 0;
if (threshold == 0)
return 1;
struct visite * v = visite_create(m, n, threshold);
int count = visite_moving(v, 0, 0);
visite_delete(v);
return count;
}
(有心的道友, 也可以转成栈回溯. )
后记 - 展望
错误是难免的, 欢迎朋友指正互相印证苦中作乐.
明月照小楼
立秋 - 刘翰 - 南宋
乳鸦啼散玉屏空,一枕新凉一扇风。
睡起秋声无觅处,满阶梧桐月明中。
|