zoukankan      html  css  js  c++  java
  • 面试金典--9.2

    题目描述:设想有个机器人坐在X*Y网格的左上角,只能向右向下移动。机器人从(0,0)开始出发,到(X,Y)共有多少种方法。

    思路:到i,j只和,(i-1,j)和(i,j-1)有关

    递归的时候加备忘

     1 #include <iostream>
     2 #include <queue>
     3 #include <climits>
     4 #include <algorithm>
     5 #include <memory.h>
     6 #include <stdio.h>
     7 #include <ostream>
     8 #include <vector>
     9 #include <list>
    10 #include <cmath>
    11 #include <string>
    12 #include <stdexcept>
    13 #include <stack>
    14 using namespace std;
    15 
    16 int gridPaths[1000][1000];
    17 
    18 int fun(int x,int y)
    19 {
    20     if(x == 0 || y == 0)
    21     {
    22         gridPaths[x][y] = 1;
    23         return gridPaths[x][y];
    24     }
    25     if(gridPaths[x][y] > 0)
    26         return gridPaths[x][y];
    27     else
    28     {
    29         gridPaths[x][y] = fun(x-1,y)+fun(x,y-1);
    30         return gridPaths[x][y];
    31     }
    32 }
    33 
    34 int main()
    35 {
    36     memset(gridPaths,-1,sizeof(gridPaths));
    37     int x = 10;
    38     int y = 10;
    39     cout<<fun(x,y);
    40     return 0;
    41 }

    思考:如果加入禁区点,怎么找一条路径?

  • 相关阅读:
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    UVa 12716 (GCD == XOR) GCD XOR
  • 原文地址:https://www.cnblogs.com/cane/p/3795436.html
Copyright © 2011-2022 走看看