路径问题 #1

今天笔试题的第二道编程题,第一眼我就看出来这题得用递归,但是我枚举数据的时候发现数据是有规律性的,反正当时距离笔试时间还早我就慢慢推,然后,我果然还是不适合找规律。题目难度简单,改进优化方法没想出来,就纯当记录。

问题描述:

从[1,1]位置开始,走向[m,n]位置,只可以向右向下走,问有多少种可能性

我的思路

递归,我觉得算是典型的递归题了,难度简单。
不过因为数据量限制在了1<=m==n<=100,随意对于大数据的运行效果没有实测,但是按照递归管理都不太行,可以换成非递归方式。

代码

class Solution {
public:
    int PathsCnt(int m, int n) {
        // write code here
        return path(1, 1, m, n);
    }
    int path(int a, int b, int m, int n) {
        if(a==m && b==n) 
            return 1;
        if(a==m) 
            return path(a, b+1, m, n);
        else if(b==n) 
            return path(a+1, b, m, n);
        else
            return path(a+1, b, m, n) + path(a, b+1, m, n);
    }
};
posted @ 2022-03-20 22:24  不正游侠  阅读(18)  评论(0编辑  收藏  举报