博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unique Paths I,II
阅读量:6124 次
发布时间:2019-06-21

本文共 2097 字,大约阅读时间需要 6 分钟。

题目来自于:https://leetcode.com/problems/unique-paths/

:https://leetcode.com/problems/unique-paths-ii/

A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).

The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below).

How many possible unique paths are there?

Above is a 3 x 7 grid. How many possible unique paths are there?

Note: m and n will be at most 100.

这道题目就是典型的动态规划问题。之所以会写博客也是由于被网上的第二种算法吸引了。

典型的解法记住空间复杂度要在O(n)

class Solution {public:    int uniquePaths(int m, int n) {       vector
paths(n,1); for(int i=1;i
另外一种是採用排列组合的方法来解答的

我们从左上角走到右下角一共要(m-1)+(n-1)步而当中我们能够选择(m-1)+(n-1)随意的(m-1)步向右,或者是(n-1)步向下。所以问题的答案就是Ian单的

这样的解法的缺点是可能在m。n取较大的数值时候无法储存。所以此处我们採用long int,

class Solution {public:    int uniquePaths(int m, int n) {// (m-1 + n-1)! / ((m-1)! * (n-1)!)    int large = max(m,n) -1;    int small = min(m,n) -1;    if (large == 0 || small == 0) return 1;    long int numerator = 1, denominator = 1;    for (int i=1; i<=small; ++i){        numerator *= large + i;        denominator *= i;    }    return numerator/denominator;    }};

Unique Paths II

 
Total Accepted: 35700 
Total Submissions: 127653
Question  Solution 

Follow up for "Unique Paths":

Now consider if some obstacles are added to the grids. How many unique paths would there be?

An obstacle and empty space is marked as 1 and 0 respectively in the grid.

For example,

There is one obstacle in the middle of a 3x3 grid as illustrated below.

[  [0,0,0],  [0,1,0],  [0,0,0]]

The total number of unique paths is 2.

Note: m and n will be at most 100.

这里仅仅是加了障碍物而已。在障碍物的位子是0,

还有初始化仅仅能初始化第一个位子即起点。假设起点不是障碍物则为1,否则是0;

class Solution {public:    int uniquePathsWithObstacles(vector
>& obstacleGrid) { vector
paths(obstacleGrid[0].size(),0); paths[0]=!obstacleGrid[0][0]; for(int i=0;i
=0) paths[j]+=paths[j-1]; return paths[obstacleGrid[0].size()-1]; }};

你可能感兴趣的文章
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
linux文本模式和文本替换功能
查看>>
Windows SFTP 的安装
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
ubuntu apt-get 安装 lnmp
查看>>
焊盘 往同一个方向增加 固定的长度方法 总结
查看>>
eclipse的maven、Scala环境搭建
查看>>