제목 설명
클래스 1 개 수준에 이동할 수 있습니다 개구리, 당신은 또한 레벨 2에 홉 수 있습니다 ...... n은 또한 무대에 이동할 수 있습니다. 개구리는 n 개의 학년 얼마나 많은 점프의 총을 추구 증가했다.
내 솔루션
public int JumpFloor1(int target) {
if (target == 1) {
return 1;
} else {
int total = 0;
for (int i = 1; i < target; i++) {
total += JumpFloorII(target - i);
}
return total+1;
}
}
갱스터 솔루션
① F (N) = F (N-1) + F (N-2) + F (N-3) + ... + F (2) + F (1)
② F (N-1) = F (N-2) + F (N-3) + ... + F (2) + F (1)
①②에서 만든 F (N) = 2 F (N-1);
public static int jumpFloor2(int target) {
if (target == 1) {
return 1;
} else {
return 2 * jumpFloor2(target - 1);
}
}
궁극적 인 해결책
F (N) = 2 F (N-1) (N> = 2)
F (N) = 1 (N = 1)
순환 방정식 해결된다 :
F (N) = 2F (N - 1)
2 × 2F = (( -n 1 ) - 1) = 2 (2) , F (N - 2 )
2 * 2 * 2 F = (( -n 2 ) - 1) = (2) (3) , F (N - 3 )
2 × 2 = 2 * 2 * ... * 층 (( -n은 (N-3) ) -1) 2 = N-2 , - F (N (N-2) = 2) N-2 F (2)
2 × 2 = 2 * 2 * ... * 층 (( -n은 (N-2) ) -1) 2 = N-1 , - F (N (N-1) = 2) N-1 , F (1) = 2 N-1
public int JumpFloor3(int target) {
return (int) Math.pow(2, target - 1);
}