链接:
https://leetcode-cn.com/problems/where-will-the-ball-fall/
描述:
代码:
class Solution {public: int DFS(vector>& grid,int i,int j) { int row = grid.size(); int col = grid[0].size(); if(i == row) return j; if(grid[i][j] == 1) { if(j == col-1 || grid[i][j+1] == -1) return -1; return DFS(grid,i+1,j+1); } else { if(j == 0 || grid[i][j-1] == 1) return -1; return DFS(grid,i+1,j-1); } } vector findBall(vector>& grid) { int row = grid.size(); int col = grid[0].size(); vector ret(col,-1);//创建返回数组 for(int j = 0;j
代码分析:
当一个小球落在某个位置时
当当前位置是1时,那么他会想向右下移动,
如果他的右边也是1,那么他的下一层地址就是i+1,j+1
如果他的右边是-1或者是墙时,那么他就不会到达下一层
同理:
当当前位置是-1时,那么他会想向坐下移动
如果他的左边是-1,那么他的下一层地址就是i+1,j-1
如果他的左边是1,或者是墙时,那么他就不会到达下一层