LeetCode第 N 个泰波那契数 (认识动态规划)

news/2024/7/7 19:14:33

认识动态规划

      • 编写代码
      • 代码空间优化

链接: 第 N 个泰波那契数

在这里插入图片描述

在这里插入图片描述

编写代码

class Solution {
public:
    int tribonacci(int n) {
        if(n == 0)
        {
            return 0;
        }
        else
        {
            if(n ==1 || n == 2)
            return 1;
        }
        vector<int> dp(n + 1);
        dp[0] = 0;dp[1] = 1;dp[2] = 1;
        for(int i = 3;i <= n;i++)
        {
            dp[i] =dp[i-3] + dp[i -2] + dp[i - 1];
        }

        return dp[n];
    }
};

在这里插入图片描述

代码空间优化

一般像这种情况我们可以使用滚动数组的方式来解决空间的问题
在这里插入图片描述

class Solution {
public:
    int tribonacci(int n) {
        if(n == 0)
        {
            return 0;
        }
        else
        {
            if(n ==1 || n == 2)
            return 1;
        }
        int a = 0,b = 1 , c = 1, d = 0;
        for(int i = 3;i <= n;i++)
        {
            d = a + b + c;
            a = b;
            b = c;
            c = d;
        }

        return c;
    }
};

在这里插入图片描述


http://lihuaxi.xjx100.cn/news/1380056.html

相关文章

rust reborrow - 重借用

两个知识点: 第一:对于不可变借用&T,它的传递属于Copy语意。对于可变借用&mut T它的传递属于Move语意或reborrow。 第二:可变引用在同一个时刻只能拥有一个,但是有一个重借用(reborrow)的方式,可以让借用重新获得可变引用。 下面为reborrow的三种方式 明确写出…

对gpt的简单认识

1.gpt是什么&#xff1f; GPT&#xff08;Generative Pre-trained Transformer 生成式预训练Transformer模型&#xff09;是一种基于Transformer架构的预训练语言模型&#xff0c;由OpenAI开发。GPT模型以无监督学习的方式使用大规模语料库进行预训练&#xff0c;并具有生成文…

电商系统架构设计-从入门到精通教程

电商这个业务&#xff0c;和我们的生活息息相关。你可能对电商多少有一些了解&#xff0c;但是&#xff0c;即使是一个最小化的电商系统&#xff0c;它仍然非常复杂。 在这个系列的文章里&#xff0c;我们将一起以一个创业公司的 CTO 的视角&#xff0c;来设计一个最小化的电商…

java后端接口实现302跳转

正常来说&#xff0c;接口返回String是"redirect:"url或者“r:”url就能实现前端接收到返回后自动302.但是我在自己的一个项目中这么写了之后发现返回的是纯字符串&#xff0c;很奇怪。 最后发现&#xff0c;如果你的controller层有RestController注解&#xff0c;那…

flask中的cookies介绍

flask中的cookies介绍 “Cookie” 在 web 开发中是一种非常重要的技术&#xff0c;用于在客户端&#xff08;即用户的浏览器&#xff09;存储信息&#xff0c;以便在多个页面和多个访问会话之间保持状态。Cookies 通常用于记住用户的登录信息&#xff0c;跟踪用户在站点上的浏…

用VMware给运行在VMware上的CentOS7生成一个以SSH方式连接VMware上的CentOS7的运行在Windows上的命令行窗口

2023年7月27日&#xff0c;周四早上 目录 一个发现生成方法如果上面的方法连接失败&#xff0c;就采取这个方法 一个发现 今天早上无意间发现VMware可以生成一个以SSH方式连接着CentOS7的Windows命令行窗口&#xff0c; 这样做可以带来一定的便利性 &#xff1a; 方便复制、…

Linux wc命令用于统计文件的行数,字符数,字节数

Linux wc命令用于计算字数。 利用wc指令我们可以计算文件的Byte数、字数、或是列数&#xff0c;若不指定文件名称、或是所给予的文件名为"-"&#xff0c;则wc指令会从标准输入设备读取数据。 语法 wc [-clw][–help][–version][文件…] 参数&#xff1a; -c或–b…

将 MongoDB 的 List<Document> 转换为对象列表

当我们使用 MongoDB 存储数据时&#xff0c;经常会涉及到将 MongoDB 的文档对象转换为对象列表的需求。在 Java 中&#xff0c;我们可以使用 MongoDB 的 Java 驱动程序和自定义类来实现这一转换过程。 本篇博客将介绍如何将 MongoDB 中的 List<Document> 转换为对象列表。…