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之路的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode] 球会落何处 模拟

五月集训(第28天) —— 动态规划

CF #401 (Div. 2) E. Hanoi Factory (栈+贪心)

如何处理模块和打字稿类型的笑话模拟功能

如何处理 Nativescript Vue 应用程序上的导航?

使用 iOS 模拟器时如何处理 TestFlight 中的检查点?