动态规划 Leetcode 509 斐波那契数

斐波那契数

Leetcode 509

学习记录自代码随想录

斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。

示例 1:
输入:n = 2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1

示例 2:
输入:n = 3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2

示例 3:
输入:n = 4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3

提示:
0 <= n <= 30

要点:1.明确动态规划5个步骤的含义;
2.a.动态规划数组为一维数组,每个下标对应F()内部参数;b.确定递推公式:dp[i] = dp[i-1] + dp[i-2];c.dp数组初始化,dp[0] = 0,dp[1] = 1;d.确定遍历顺序为从前到后;e.举例推到dp数组数值,eg.n=10,0,1,2,3,5,8,13,21,34,55。

// 动态规划
class Solution {
public:int fib(int n) {if(n == 0 || n == 1) return n;vector<int> dp(n+1);dp[0] = 0;dp[1] = 1;for(int i = 2; i < n+1; i++){dp[i] = dp[i-1] + dp[i-2];}return dp[n];}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SQL - 软件 - MySQL】随笔 - 查看已有数据库

查看已有数据库 语法 语法格式 SHOW DATABASES [LIKE 数据库名]&#xff1b;语法说明 "[ ]"中的内容是可选项&#xff0c;用于匹配特定的数据库名称。可以部分匹配&#xff0c;也可以完全匹配&#xff1b; 使用示例 01 代码 SHOW DATABASES LIKE test;描述 查看…

华为北向网管NCE开发教程(3)CORBA协议开发

华为北向网管NCE开发教程&#xff08;1&#xff09;闭坑选接口协议 华为北向网管NCE开发教程&#xff08;2&#xff09;REST接口开发 华为北向网管NCE开发教程&#xff08;3&#xff09;CORBA协议开发 如果你真的还有选择的余地&#xff0c;能用REST&#xff0c;尽量用REST&…

错误和异常之标准异常创建异常

标准异常 表 10.2 列出了所有的 Python 当前的标准异常集,所有的异常都是内建的. 所以它们在脚本启动 前或在互交命令行提示符出现时已经是可用的了. 表10.2 Python内建异常 异常名称描述所有异常的基类 python 解释器请求退出 用户中断执行(通常是输入^C) 常规错误的基类

Flutter使用auto_updater实现windows/mac桌面应用版本升级功能

因为windows应用一般大家都是从网上下载的&#xff0c;后期版本肯定会更新&#xff0c;那用flutter开发windows应用&#xff0c;怎么实现应用内版本更新功能了&#xff1f;可以使用auto_updater库&#xff0c; 这个插件允许 Flutter 桌面 应用自动更新自己 (基于 sparkle 和 wi…

Linux rmmod命令教程:如何卸载内核模块(附实例详解和注意事项)

Linux rmmod命令介绍 rmmod&#xff08;全称&#xff1a;remove module&#xff09;用于从Linux内核中卸载已加载的内核模块。它允许您在运行时移除不再需要的模块&#xff0c;以释放系统资源或更改内核配置。 Linux rmmod命令适用的Linux版本 rmmod在大多数Linux发行版中通…

#onenet网络请求http(GET,POST)

参考博文&#xff1a; POST: https://blog.csdn.net/qq_43350239/article/details/104361153 POST请求&#xff08;用串口助手测试&#xff09;&#xff1a; POST /devices/1105985351/datapoints HTTP/1.1 api-key:AdbrV5kCRsKsRCfjboYOCVcF9FY Host:api.heclouds.com Con…

java各种集合...习题

1 题目&#xff1a;给定一个长度为N的数组A&#xff0c;请你先从小到大输出它的每个元素&#xff0c;在从大到小输出它的每个元素。 示例输入 5 1 3 2 6 5 输出 1 2 3 5 6 6 5 3 2 1 package AAA;import java.util.*;public class Main5 {public static void main(Strin…

Linux内核中轮询对应于应用层的函数之一:epoll函数

一. 简介 应用层中提供的 select函数、poll函数 和 epoll函数可以用于处理轮询,应用程序通过 select、 epoll 或 poll 函数来查询设备是否可以操作。 应用层提供的 select()、poll() 或 epoll() 这三个函数,对应于对应了Linux驱动 file_operations 结构体中的成员函数 .pol…

Util工具类功能设计与类设计(http模块一)

目录 类功能 类定义 类实现 编译测试 Split分割字符串测试 ReadFile读取测试 WriteFile写入测试 UrlEncode编码测试 UrlDecode编码测试 StatuDesc状态码信息获取测试 ExtMime后缀名获取文件mime测试 IsDirectory&IsRegular测试 VaildPath请求路径有效性判断测…

图像处理与视觉感知---期末复习重点(2)

文章目录 一、空间域图像增强1.1 图像增强1.2 几种变换 二、直方图2.1 直方图定义2.2 直方图均衡化2.3 离散情况2.4 例子2.5 直方图匹配2.6 例子2.7 一道例题 三、空间滤波器3.1 定义3.2 例子 四、平滑空间滤波器4.1 作用与分类4.2 线性滤波器 五、统计排序滤波器5.1 定义与分类…

RNN(Recurrent Neural Networks)循环神经网络

循环神经网络&#xff08;Recurrent Neural Network&#xff0c;简称RNN&#xff09;是一种处理序列数据的神经网络结构&#xff0c;它具有记忆能力&#xff0c;能够捕捉序列中的时序信息。RNN在自然语言处理、时间序列预测等方面有着很多的应用。 一、RNN 的基本结构 RNN的包…

【鸿蒙 HarmonyOS 4.0】常用组件:List/Grid/Tabs

一、背景 列表页面&#xff1a;List组件和Grid组件&#xff1b; 页签切换&#xff1a;Tabs组件&#xff1b; 二、列表页面 在我们常用的手机应用中&#xff0c;经常会见到一些数据列表&#xff0c;如设置页面、通讯录、商品列表等。下图中两个页面都包含列表&#xff0c;“…

STL容器之哈希

哈希 ​ 哈希本质上还是一个数组&#xff0c;只是数组的每一个位置要存储的值进行了映射&#xff1b; ​ 哈希也可以叫做散列&#xff1b; ​ 哈希比红黑树快是因为&#xff0c;不需要重复进行比较大小&#xff0c;直接用映射关系进行查找&#xff1b; ​ 哈希函数的设计应…

华为北向网管NCE开发教程(2)REST接口开发

华为北向网管NCE开发教程&#xff08;1&#xff09;闭坑选接口协议 华为北向网管NCE开发教程&#xff08;2&#xff09;REST接口开发 华为北向网管NCE开发教程&#xff08;3&#xff09;CORBA协议开发 假设你现在要开始华为北向接口REST协议之前&#xff0c;需要准备如环境 1准…

Vue中用户权限如何处理?

Vue中用户权限如何处理&#xff1f; 在 Vue 中&#xff0c;可以采用多种方式来处理用户权限&#xff0c;以下是一些常见的方法&#xff1a; 1. 使用路由守卫 Vue Router 提供了 beforeEach 导航守卫&#xff0c;可以在路由跳转之前进行权限检查。例如&#xff1a; router.be…

Leetcode3069. 将元素分配到两个数组中 I

Every day a Leetcode 题目来源&#xff1a;3069. 将元素分配到两个数组中 I 解法1&#xff1a;模拟 简单地按题意模拟。 代码&#xff1a; /** lc appleetcode.cn id3069 langcpp** [3069] 将元素分配到两个数组中 I*/// lc codestart class Solution { public:vector<…

Android的FragmentManager介绍以及它管理Fragment的流程

Android的FragmentManager是用于管理Fragment的生命周期和交互的工具。FragmentManager的主要职责是管理Fragment的生命周期&#xff0c;包括Fragment的创建、销毁、显示、隐藏等操作。它还负责处理Fragment之间的交互&#xff0c;例如Fragment之间的数据传递和通信。 首先了解…

WPF依赖属性优先级

文章目录 一、前言二、依赖属性优先级2.1 前置知识2.2 WPF属性系统⭐2.2.1 在多处设置依赖属性 ⭐2.3 依赖属性优先级列表2.4 模板的父亲/模板化父亲 TemplatedParent2.5 Style 属性&#x1f53a;2.6 默认&#xff08;主题&#xff09;样式2.7 动态资源2.8 SetCurrentValue2.9 …

【libwebrtc】基于m114

libwebrtc A C++ wrapper for binary release, mainly used for flutter-webrtc desktop (windows, linux, embedded).是 基于m114版本的webrtc 最新(20240309 ) 的是m122了。官方给出的构建过程 .gclient 文件 solutions = [{"name" : src,"url

微软AI工程师向联邦贸易委员会(FTC)发出警告,对Copilot Designer的安全性表示担忧

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…