力扣每日一题|力扣(每日一题)—— 1706. 球会落何处

题目描述 1706. 球会落何处
力扣每日一题|力扣(每日一题)—— 1706. 球会落何处
文章图片

力扣每日一题|力扣(每日一题)—— 1706. 球会落何处
文章图片

力扣每日一题|力扣(每日一题)—— 1706. 球会落何处
文章图片

解题思路 模拟法 我们采用模拟法,模拟每一个球的运动状态,看看球是如何运动的。
小球运动一共有种两种大情况。
大情况一:挡板一侧是墙壁
当左边是墙壁时,若挡板向左偏,小球此时被卡住,记录为-1。若挡板向右偏,则继续运动。
当右边是墙壁时,若挡板向右偏,小球此时被卡住,记录为-1。若挡板向左偏,则继续运动。
大情况二:挡板不靠近墙壁
若两侧都为右,则向右运动,若两侧都为左,则向左运动。若两侧相等,则被卡住,记录为-1.
详细代码

class Solution { public: vector findBall(vector>& grid) { int row = grid.size(); //行数 int column= grid[0].size(); //列数 vector res(column, -1); for(int i = 0; i < column; ++i) { int j = 0; int index = i; while( j < row && index >= 0 && index < column) { if(grid[j][index] == 1 && index + 1 < column && grid[j][index+1] == 1) { ++index; ++j; } else if(grid[j][index] == -1 && index - 1 >= 0 && grid[j][index-1] == -1) { --index; ++j; } else break; } if(j == row) res[i] = index; } return res; } };

每日金句
学习永远不晚——高尔基
【力扣每日一题|力扣(每日一题)—— 1706. 球会落何处】力扣每日一题|力扣(每日一题)—— 1706. 球会落何处
文章图片

本人不才,如有错误,或有更好的解法,欢迎各位大佬在评论区讨论。如果对你有帮助的话还请点赞,收藏,关注哦!

    推荐阅读