LeetCode 1706 球会落何处[模拟] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1706 球会落何处[模拟] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
这是一道万金油题目,模拟、动态规划和dfs都可以轻松解决,而任意小球都不会相撞,所以模拟方法是最直接简介的,直接对每个小球的路径进行遍历,一旦走不通就把该小球标记为-1,走到最后一层标记为当前的列下标,代码如下:
class Solution
public:
vector<int> findBall(vector<vector<int>>& grid)
int m = grid.size(), n = grid[0].size();
vector<int> res(n);
// 遍历每个小球
for(int i = 0; i < n; i ++)
// 初始化前一个所在列
int pre = i;
// 一层层遍历
for(int j = 0; j < m; j ++)
// 当前将要前往的列
int cur = pre + grid[j][pre];
if(cur < 0 || cur >= n || grid[j][pre] + grid[j][cur] == 0)
res[i] = -1;
break;
// 更新pre
pre = cur;
// 如果达到最后一层,更新res
if(j == m - 1) res[i] = pre;
return res;
;
以上是关于LeetCode 1706 球会落何处[模拟] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
CF #401 (Div. 2) E. Hanoi Factory (栈+贪心)