每日刷题计划Day[26]

题源:LeetCode

1706. 球会落何处

class Solution {
public:
    vector<int> findBall(vector<vector<int>>& grid) {
        //思想主要在循环上,真的妙
        int n = grid[0].size();
        vector<int> ans(n, -1);
        for(int j = 0; j < n; j++){
            int col = j;//球的初始列
            for(auto &row : grid){
                int dir = row[col];//挡板方向
                col += dir;//初始列左右移动
                if(col < 0 || col == n || row[col] != dir){
                    // row[col] != dir 移动后同一行格子的挡板方向与之前格子的挡板方向是否一致
                    col = -1;
                    break;
                }
            }
            if(col >= 0)//成功到达底部
                ans[j] = col;
        }
        return ans;
    }
};
上一篇:Cross Coloring(思维/map/逆向)


下一篇:CoProcessFunction实战三部曲之三:定时器和侧输出