leetcode (62) 다른 경로 (C ++)

왼쪽 코너 MXN 그리드에 위치한 로봇 (아래 "시작"이라는 점 그림을 시작).

로봇은 오른쪽이나 아래로 한 단계를 이동할 수 있습니다. 로봇 ( "마침"이라는 다음 그림) 그리드의 오른쪽 하단 모서리에 도달하려고합니다.

Q. 총에 얼마나 많은 서로 다른 경로?

클래스 해결 {
 공개 :
     INT uniquePaths ( INT m, INT의 N) { 
        벡터 < INT > DP (N, 1 );
        위한 ( int로 I = 1 ; i가 m을 <; ++ I) {
              ( INT의 J = 1 , N J <; ++ j)는 { 
                DP [J] + = DP [J - 1 ]; 
            } 
        } 
        리턴 DP [N - 1 ]; 
    } 
};

아이디어 :

동적 프로그래밍, 사다리 비유에게 그 질문을 올라. DP는 DP가 [I] [j]가있어서 걸어 상이한 수의 현재 위치를 나타내고, 2 차원 배열을 유지할 수 있고, 다음의 재귀 식을 수득 할 수있다 : (DP) [I]은 [j]가 DP를 = I - 1] [J] + DP [I] [J - 1], 공간을 절약하기 위해, 우리는 1 차원 배열 (DP)를 사용하는 경우, 라인마다 새로 고침 할

추천

출처www.cnblogs.com/xiaotongtt/p/11318342.html