题目描述 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. 球会落何处】
文章图片
本人不才,如有错误,或有更好的解法,欢迎各位大佬在评论区讨论。如果对你有帮助的话还请点赞,收藏,关注哦!
推荐阅读
- 力扣每日一题|力扣(每日一题)—— 2016. 增量元素之间的最大差值
- 数据结构|数据结构与算法(七)-哈希表(HashTable)
- 面试经验|C语言实现的数据结构之------哈希表
- 二叉树(Binary|LeetCode 536. Construct Binary Tree from String - 二叉树系列题18
- #|二进制粒子群算法的配电网故障定位(Python&Matlab实现)
- 算法|一个月读完6本书(这些烧脑神书,你能读完1本,就是学霸!)
- #|多目标优化NSGA-II(非支配排序常见于遗传算法)(C语言实现)
- 入门教程|C语言总结项目和入门——文件操作
- c语言|scanf/fscanf/sscanf,printf/fprintf/sprintf函数的对比