【LeetCode】Unique Paths

本文探讨了机器人从网格的左上角到达右下角的不同路径数量的问题,并通过动态规划算法提供了有效的解决方法,包括代码实现和空间优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接

http://www.cnblogs.com/remlostime/archive/2012/11/15/2772263.html

题目描述

Unique Paths

  Total Accepted: 9698  Total Submissions: 31863 My Submissions

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.


题目分析

动态规划
开一个f[m][n]的数组,f[i][j] = f[i-1][j] + f[i][j-1],空间时间复杂度O(m*n)。用滚动数组空间复杂度可降为O(n)


代码示例


/*
编译环境CFree 5.0
博客地址:http://blog.youkuaiyun.com/Snowwolf_Yang
*/
#include 
   
    
#include 
    
     
using namespace std;
#if 0//超时 
class Solution {
public:
    int uniquePaths(int m, int n) {
    	int sum = 0;
        uniquePathsCore(m,n,0,0,sum);
        return sum;
    }
    void uniquePathsCore(int m, int n, int i, int j, int &sum)
    {
    	if(i == m-1 && j == n-1)
		{
			sum++;
			//printf("(%d,%d) ",i,j);
			//printf("end\n");
			return;
		}
    	if(j
     
     
    
   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值