2.4.1 귀속과 순환

1783 단어
면접문제 10: 피보나치 수열 귀속은 대량의 중복 데이터가 존재한다.아래와 같이 최적화하다

    function Fibonacci(n)
    {
        if(n===0)
            return 0;
        if(n===1)
            return 1;
        let num1=0;
        let num2=1;
        let fibN;
    for(let i=2;i<=n;i++){
        fibN=num1+num2;
        num1=num2;
        num2=fibN;
    }
        return fibN;
    }


제목 2: 계단 뛰기
개구리 한 마리가 한 번에 1계단을 올라갈 수도 있고 2계단을 올라갈 수도 있다.이 개구리가 n급의 계단을 뛰어오르는 데는 모두 몇 가지 방법이 있는지 구해라.
function jumpFloor(number)
{
    let F1=1;
    let F2=2;
    if(number===1)
        return 1;
    if(number===2)
        return 2;
    let Fn; 
    for(let i=3;i<=number;i++){
        Fn=F1+F2;
        F1=F2;
        F2=Fn;
    }
    return Fn;
}

제목 3: 변태 계단 뛰기
개구리 한 마리가 한 번에 1계단을 올라갈 수도 있고 2계단을 올라갈 수도 있고...그것도 n계단을 올라갈 수 있다.이 개구리가 n급의 계단을 뛰어오르는 데는 모두 몇 가지 방법이 있는지 구해라.마지막 1단계 f(n-1)종 점프 가정하기;마지막으로 2 단계 f(n-2)종 뛰기;...마지막 n 단계 1종 f(n)=f(n-1)+f(n-2)+...+일;
function jumpFloorII(number)
{
    // write code here
    if(number===1)
    return 1;
    if(number===2)
     return 2;
    let f1=1;
    let f2=2;
    for(let i=3;i<=number;i++){
        fn=f1+f2+1;
        f1=f1+f2;
        f2=fn;
    }
    return fn;
}

제목 4: 직사각형 덮어쓰기
우리는 21의 작은 직사각형으로 가로나 세로로 더 큰 직사각형을 덮을 수 있다.실례지만 n개의 21개의 작은 사각형으로 2*n의 큰 사각형을 중첩 없이 덮는 방법은 모두 몇 가지가 있습니까?
function rectCover(number)
{
    if(number===0)
        return 0;
    // write code here
    // 
    if(number===1)
        return 1;
    // 2 . , 
    if(number===2)
        return 2;
    let f1=1;
    let f2=2;
    let fn;
    for(let i=3;i<=number;i++){
        fn=f1+f2;
        f1=f2;
        f2=fn;
    }
    return fn;
}

좋은 웹페이지 즐겨찾기