import java.util.HashMap;
import java.util.Map;
public class Solution {
/**
* @Description
* @Author fucheng
* @Date 2022-4-11 17:38
* @Param [n]
* @return int
*/
// public int Fibonacci1(int n) {
// if (n == 0) return 0;
// if (n <= 2) return 1;
// return Fibonacci1(n - 1) + Fibonacci1(n - 2);
// }
/**
* @Description
* @Author fucheng
* @Date 2022-4-11 17:38
* @Param [n]
* @return int
*/
public int Fibonacci(int n) {
if (n == 0) return 0;
if (n <= 2) return 1;
int result = 0, a2 = 1, a1 = 1;
for (int i = 3; i <= n; ++i) {
result = a1 + a2;
a1 = a2;
a2 = result;
}
return result;
}
// private Map<Integer, Integer> cacheMap = new HashMap<>();
// /**
// * @Description
// * @Author fucheng
// * @Date 2022-4-11 17:38
// * @Param [n]
// * @return int
// */
// public int Fibonacci3(int n) {
// if (n == 0) return 0;
// if (n <= 2) return 1;
// if (cacheMap.containsKey(n)) return cacheMap.get(n);
// int result = Fibonacci3(n - 1) + Fibonacci3(n - 2);
// cacheMap.put(n, result);
// return result;
// }
}