dfs为啥不行啊

class Solution {
public:
    /**
     * 返回最后要输出的答案
     * @param n int整型 表示牛牛的数字
     * @param m int整型 表示牛妹的数字
     * @return int整型
     */
    int minn;
    void dfs(int n,int m,int step){
        if(n>10000) return;
        if(n==m){
            minn=min(minn,step);
            return;
        }
        if(n>m){
            dfs(n-1,m,step+1);
        }
        else {
            if(n*n!=n)dfs(n*n,m,step+1);
            dfs(n+1,m,step+1);
        }
 
    }
    int solve(int n, int m) {
        // write code here
        minn=1000000;
        dfs(n,m,0);
        return minn;
    }
};
为啥dfs只能过40%
全部评论
这道题本质是隐式图的最短路,最短路一般不能用dfs解决。
点赞 回复
分享
发布于 2020-07-11 20:59
用队+bfs可以诶
点赞 回复
分享
发布于 2020-07-11 22:53
饿了么
校招火热招聘中
官网直投

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务