返回备忘录列表

Rust 爬楼梯递归与缓存实现

更新于

公开 · 所有人可见
use std::collections::HashMap;

const MEMO: HashMap<i32, i32> = HashMap::new();


impl Solution {

    pub fn climb_stairs(n: i32) -> i32 {
        
        if (MEMO.contains_key(&n)) {
            return *MEMO.get(&n).unwrap()
        }

        if n == 1 {
            return 1
        }
        if n == 2 {
            return 2
        }
        let cache_value = Self::climb_stairs(n-1) + Self::climb_stairs(n-2);
        MEMO.insert(n, cache_value);

        return cache_value
    }
}