zoukankan      html  css  js  c++  java
  • leetcode63 不同路径

    这种题目大多不用搜索,首选简单数学方法和动态规划。这里用的是动态规划如果网络只有两行的话可以用数学方法。简单的dp问题,题目求什么dp数组设什么就好。转移条件也很简单。注意判断边界情况,数组设置成long long不然会爆int。

    class Solution {
    public:
        int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
            long long dp[105][105];
            if(obstacleGrid.empty()||obstacleGrid[0].empty())
            {
                return 0;
            }
            if(obstacleGrid[0][0]==1)
                return 0;
            int row=obstacleGrid.size();
            int col=obstacleGrid[0].size();
            int i;
            dp[0][0]=1;
            for(i=0;i<row;i++)
            {
                if(obstacleGrid[i][0]!=0)
                {
                    for(;i<row;i++)
                    {
                        dp[i][0]=0;
                    }
                    break;
                }
                else
                    dp[i][0]=1;
            }
            for(i=0;i<col;i++)
            {
                if(obstacleGrid[0][i]==1)
                {
                    for(;i<col;i++)
                        dp[0][i]=0;
                    break;
                }
                else
                    dp[0][i]=1;
            }
            int j;
            for(i=1;i<row;i++)
            {
                for(j=1;j<col;j++)
                {
                    if(obstacleGrid[i][j]==1)
                        dp[i][j]=0;
                    else
                        dp[i][j]=dp[i][j-1]+dp[i-1][j];
                }
            }
            return dp[row-1][col-1];
        }
    };
  • 相关阅读:
    Jquery想说爱你不容易
    关于css
    sass相关实例
    web前端学习之HTML
    web前端学习
    软件工程来换网前端设计
    关于前端开发的相关资料及例子
    四则运算
    自我介绍
    关于读完《软件工程》之后不解的问题
  • 原文地址:https://www.cnblogs.com/legendcong/p/12535438.html
Copyright © 2011-2022 走看看