面某某服二面原题,在经过面试官提示后(还故意试探给我留坑:可以用数组保留啥),要达到时间复杂度和空间复杂度最小

自己最开始想的是递归,面试官说不让那么搞

/**
 * 
 * @param n int整型 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int Fibonacci(int n ) {
    // write code here
    if (n < 3)
    {
        return 1;
    }
    
    int num1 = 1;
    int num2 = 1;
    int ret = num1 + num2;
    for (int i = 3; i <= n; i++)
    {
        ret = num1 + num2;
        num1 = num2;
        num2 = ret;
    }
    
    
    return ret;    
}