偶尔正经的小明 2023-05-24 09:54 采纳率: 0%
浏览 21

java 第 N 个泰波那契数

在力扣提交第 N 个泰波那契数的时候 为什么第一种代码比 第二种使用了 更小的内存 不理解

1.

class Solution {
    HashMap<Integer,Integer> val= new  HashMap<Integer,Integer>();
    public int tribonacci(int n) {

        if(n==0){
            return 0;
        }
        if(n<=2){
            return 1;
        }
        if (val.containsKey(n)) {
            return val.get(n);
        }else{
            int a =  tribonacci(n-1)+tribonacci(n-2)+tribonacci(n-3);
            val.put(n,a);
            return a;
        }
        
    }
}

2.

class Solution {

    public int tribonacci(int n) {

        int a =0;
        int b=1;
        int c= 1;

        if(n==0){
            return 0;
        }
        if(n<=2){
            return 1;
        }
        for(int i =3;i<=n;i++){
            a=a+b+c;
            b=b^c;
            c=b^c;
            b=b^c;
            a=a^c;
            c=a^c;
            a=a^c;
        }
        return c;
    }
}
  • 写回答

5条回答 默认 最新

  • threenewbee 2023-05-24 10:00
    关注
    第一种和第二种比并不节约内存
    只是HashMap<Integer,Integer> val= new  HashMap<Integer,Integer>();
    的存在,和不用它缓存已经算出的结果的传统递归比,节约了内存。
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 5月24日

悬赏问题

  • ¥15 codeblock遇到问题了,求帮助😭
  • ¥15 Qt6.8.0加载网页MSVC2022
  • ¥15 360浏览器m2的这个值
  • ¥15 国内有哪些厂商做automlops的?
  • ¥15 skynet pb mysql
  • ¥15 笔记本外接显示器分辨率太低各种方法都用过了调不高
  • ¥15 Redstone R0697-F00 D2020 交换机 OS
  • ¥50 H5+js 动态数字画廊怎么做?
  • ¥20 外向内全景图像拼接相关项目和论文咨询
  • ¥20 请写个前端案例学习使用