力扣 LeetCode 5210. 球会落何处

在这里插入图片描述
在这里插入图片描述

这个题主要就是两个点,一个是当球落在(x1,y1)如果y1为0,说明此时该点已经在最左边了,如果此时该点值为-1,则会被卡在左边,同理,如果y1为grid[i].size()-1,说明此时该点已经在最右边了,如果该点值为1,则会被卡在右边。第二点是,如果球在(x2,y2)时,如果值为1,则要看(x2,y2+1)是否为-1,如果是-1则球会被卡在该点,同理如果值为-1,则要看(x2,y2-1)是否为1.

class Solution {
public:
    
    int finallGrid(vector<vector<int>>& grid,int x,int y){
        int m=grid.size();
        int n=grid[0].size();
        while(x<m){
            if(grid[x][y]==1){
                if(y==n-1||grid[x][y+1]==-1){
                    return -1;
                }
                else{
                    x++;
                    y++;
                }
            }
            else{
                if(y==0||grid[x][y-1]==1){
                    return -1;
                }
                else{
                    x++;
                    y--;
                }
            }
        }
        return y;
    }
    
    vector<int> findBall(vector<vector<int>>& grid) {
        vector<int>res;
        for(int i=0;i<grid[0].size();i++){
            res.push_back(finallGrid(grid,0,i));
        }
        return res;
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值