Task08

本文链接:https://blog.csdn.net/qq_34811382/article/details/112852249

062、不同路径

在这里插入图片描述
思路:

方法一:每个方格的路线只有左面或者上面,所以给起始位置路径计做0,第一行和第一列的每个位置路径计做1,其他位置,只有上面和左面可以到达,因此,我们只计算左面和上面位置路径的和。
即(i,j)的路径=(i-1,j)+(i,j-1)的路径和。

class Solution
{
    
    
public:
    int uniquePaths(int m, int n)
    {
    
    
        vector<vector<int>> PathMap(m, vector<int>(n, 0));
        for (int i = 0; i < m; i++)
            PathMap[i][0] = 1;
        for (int i = 0; i < n; i++)
            PathMap[0][i] = 1;
        for (int i = 1; i < m; i++)
        {
    
    
            for (int j = 1; j < n; j++)
            {
    
    
                PathMap[i][j] = PathMap[i - 1][j] + PathMap[i][j - 1];
            }
        }
        return PathMap[m - 1][n - 1];
    }
};

用排列组合的方法:
从起点到终点,向下走的一共有m-1步,向右走的一共有n-1步,即一共走m+n-2步,从中抽出m-1步向下走的或者n-1步向右走的。所以一共有(m+n-2)!/(m-1)!(n-1)!

class Solution {
    
    
public:
    int uniquePaths(int m, int n) {
    
    
        long long ans = 1;
        for (int x = n, y = 1; y < m; ++x, ++y) {
    
    
            ans = ans * x / y;
        }
        return ans;
    }
};

70、爬楼梯

在这里插入图片描述
思路:

斐波那契数列。f(1)=1,f(2)=2,f(3)=3,f(4)=5…

class Solution
{
    
    
public:
    int climbStairs(int n)
    {
    
    
        if(n<=2)
            return n;
        int result = 0;
        int front = 1, next = 2;
        for (int i = 3; i <=n;i++){
    
    
            result = front + next;
            front = next;
            next = result;
        }
        return result;
    }
};

78、子集

在这里插入图片描述
思路:位运算
在这里插入图片描述

代码:

class Solution
{
    
    
public:
    vector<vector<int>> subsets(vector<int> &nums)
    {
    
    
        int S = nums.size();
        int N = 1 << S; 
        vector<vector<int>> res;
        for (int i = 0; i < N; i++)
        {
    
    
            vector<int> v;
            for (int j = 0; j < S; j++)
                if (i & (1 << j))
                    v.push_back(nums[j]);
            res.push_back(v);
        }
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_34811382/article/details/112852249