왼쪽 코너 MXN 그리드에 위치한 로봇 (아래 "시작"이라는 점 그림을 시작).
로봇은 오른쪽이나 아래로 한 단계를 이동할 수 있습니다. 로봇 ( "마침"이라는 다음 그림) 그리드의 오른쪽 하단 모서리에 도달하려고합니다.
총 Q. 얼마나 많은 서로 다른 경로가 있습니까?
예를 들어,지도는 7 × 3의 격자이다. 얼마나 많은 가능한 경로가 있나요?
예 1 :
입력 : m = 3 , N- = 2 출력 : 3 설명 : 상단 코너를 왼쪽에서 총 세 가지 경로가 오른쪽 하단 모서리에 도달합니다. 1 . 마우스 오른쪽 -> 오른쪽 -> 아래 2 마우스 오른쪽 -.> 아래 -> 오른쪽 3 다운 -> 우측 -> 우측
예 2 :
입력 : m = . 7 , = N- . 3 출력 : 28
팁 :
1 <= m, n <= 100
- 데이터 주제는 대답은 같음보다 작다는 것을 보장하기 위해
2 * 10 ^ 9
생각 : F (m, N) = F (m-1, N) + F (m, N-1)에 대한 재귀 갑자기 재귀 식 아웃 느낌;
코드 :
1 급 솔루션 { 2 공개 : 3 의 INT uniquePaths ( INT의 m, INT N) { 4 // F (m, N) = F (m-1, N) + F (m, N-1); 5 INT의 A [ 101 ] [ 101 ]; (6) 의 경우 (m == 0 || N == 0 ) 창 1 ; 7 대 ( INT 난 = 0 ; I <m은; ++ i)는 { 8 대 ( INT J = 0 , N J <; ++ j)는 { 9 경우 (I == 0 || J == 0 ) { 10 A [I]는 [j]가 = 1 ; 11 } 사람이 { 12 A [I]는 [j]가 = A [I- 1 ] [J] + A [I] [J = 1 ]; 13 } 14 } 15 } 16 리턴 A [m - 1 ] N - 1 ]; 17 } 18 };
추신 : C (m, m + n)이 직접 복귀 될 수 있도록이 문제는 고등학교 순열 및 조합에서 상기해야 실제로 결과 바로 선택 단계에서 m + n은 m 단계이다.