剑指 Offer(第2版)面试题 10:斐波那契数列
剑指 Offer(第2版)面试题 10:斐波那契数列
- 剑指 Offer(第2版)面试题 10:斐波那契数列
- 解法1:递归
- 解法2:动态规划
- 解法3:动态规划 - 空间优化
剑指 Offer(第2版)面试题 10:斐波那契数列
题目来源:21. 斐波那契数列
解法1:递归
代码:
class Solution {
public:int Fibonacci(int n) {if(n == 0) return 0;if(n == 1) return 1;return Fibonacci(n-1) + Fibonacci(n-2);}
};
复杂度分析:
时间复杂度:O(n)。
空间复杂度:O(n)。
解法2:动态规划
代码:
class Solution {
public:int Fibonacci(int n) {vector<int> dp(n+1, 0);dp[1] = 1;for(int i=2;i<=n;i++)dp[i] = dp[i-1]+dp[i-2];return dp[n];}
};
复杂度分析:
时间复杂度:O(n)。
空间复杂度:O(n)。
解法3:动态规划 - 空间优化
用 3 个变量就能代替之前的动态规划数组。
代码:
class Solution {
public:int Fibonacci(int n) {int first = 0, second = 1;while(n--){int res = first + second;first = second;second = res;}return first;}
};
复杂度分析:
时间复杂度:O(n)。
空间复杂度:O(1)。
相关文章:
剑指 Offer(第2版)面试题 10:斐波那契数列
剑指 Offer(第2版)面试题 10:斐波那契数列 剑指 Offer(第2版)面试题 10:斐波那契数列解法1:递归解法2:动态规划解法3:动态规划 - 空间优化 剑指 Offer(第2版&…...
Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程
Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程 本文将指导如何在 Debian 12 和 Ubuntu 22.04 下安装 Docker 以及 Docker Compose。 PS:本文同时适用于 Debian 11 以及 Ubuntu 20.04 什么是 Docker? Docker 是一种容器化技术&#x…...
Spark_spark参数配置优先级
总结 : 优先级低-》优先级高 spark-submit 提交的优先级 < scala/java代码中的配置参数 < spark SQL hint spark submit 中提交参数 #!/usr/bin/env bashsource /home/work/batch_job/product/common/common.sh spark_version"/home/work/opt/spark&q…...
ElasticSearch之Search settings
相关参数 indices.query.bool.max_clause_count 本参数当前已失效。 search.max_buckets 本参数用于控制在单个响应中返回的聚合的桶的数量。 默认值为65536。 本参数允许在elasticsearch.yml中配置,配置样例如下: search.max_buckets: 30或者使用Ela…...
二十二、数组(4)
本章概要 随机生成泛型和基本数组 随机生成 我们可以按照 Count.java 的结构创建一个生成随机值的工具: Rand.java import java.util.*; import java.util.function.*;import static com.example.test.ConvertTo.primitive;public interface Rand {int MOD 10_0…...
『 MySQL数据库 』CRUD之UD,表的数据更新(修改)及删除
文章目录 🥩 Update (更新/修改) 🦖🥚 修改单行数据的某个字段内的数据 🦕🥚 配合LIMIT分页与ORDER BY 对符合条件的多条数据进行修改 🦕🥚 对整表的某个数据字段进行修改 🦕 &#…...
贪心算法及相关例题
目录 什么是贪心算法? leetcode455题.分发饼干 leetcode376题.摆动序列 leetcode55题.跳跃游戏I leetcode45题.跳跃游戏II leetcode621题.任务调度器 leetcode435题.无重叠空间 leetcode135题.分发糖果 什么是贪心算法? 贪心算法更多的是一种思…...
给企业做公众号运营你都有哪些宝贵经验?
运营企业公众号需要长期的坚持和不断的创新,如何运营好一个企业公众号,使其成为企业与受众互动、传递价值、提升品牌形象的平台,是许多企业所面临的挑战。但只要不断学习,总结经验,就一定能够找到适合自己企业的公众号…...
2023亚太地区数学建模B题思路分析+模型+代码+论文
目录 2023亚太地区数学建模A题思路:开赛后第一时间更新,获取见文末名片 2023亚太地区数学建模B题思路:开赛后第一时间更新,获取见文末名片 2023亚太地区数学建模C题思路:开赛后第一时间更新,获取见文末名…...
Electron+Ts+Vue+Vite桌面应用系列:sqlite增删改查操作篇
文章目录 1️⃣ sqlite应用1.1 sqlite数据结构1.2 初始化数据库1.3 初始化实体类1.4 操作数据类1.5 页面调用 优质资源分享 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418 ElectronTsVueVite桌面应用系列 :这个系列包括了从桌…...
c语言编程题经典100例——(36~40例)
1,实现快速排序算法。 下面是用C语言实现快速排序算法的示例代码: #include <stdio.h> void swap(int* a, int* b) { int t *a; *a *b; *b t; } int partition(int arr[], int low, int high) { int pivot arr[high]; int i (low …...
SQL Server实现参数化增删改查Class类
目录 SqlServerDatabase.Class Main调用 SqlServerDatabase.Class using System; using System.Data; using System.Data.SqlClient; class SqlServerDatabase { private readonly string connectionString; public SqlServerDatabase(string connectionString) { …...
【Linux】 sudo命令使用
sudo sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替…...
Redis key的类型以及命令
系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…...
数组元素积的符号
数组元素积的符号 描述 : 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 。如果 x 是负数,返回 -1 。如果 x 是等于 0 ,返回 0 。 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的…...
数据脱敏方案
数据脱敏方案 什么是数据脱敏 数据脱敏的定义 数据脱敏百度百科中是这样定义的: 数据脱敏,指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏…...
蓝桥杯每日一题2023.11.28
题目描述 三羊献瑞 - 蓝桥云课 (lanqiao.cn) 题目分析 本题首先进行观察可以确定 1.“三”为 1 (十进制数字要进位进一位) 2.“祥”一定不为 0 (有前导0就不能算为 4 位数) 使用搜索时将其特判 #include<bits/stdc.h> …...
【数据库连接池】01:连接池初始化
连接池初始化 OVERVIEW 连接池初始化1.Connection类Connection.hConnection.cpp 2.CommonConnectionPool类CommonConnectionPool.hCommonConnectionPool.cpp 1.Connection类 封装Connection类,在该类内调用mysql提供的接口实现对数据库的增删改查, Con…...
Java基于springboot开发的土特产网站商城多商家源码
主要功能:用户可以浏览特产,按分类和产地搜索,按分类查询特产,搜索店铺,查看评价,加入购物车,下单,查看店铺主页信息特产等店铺内搜索等;用户可申请开通店铺,…...
Linux CentOS7 LVM
LVM(Logical Volume Manger)逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分区管理的灵活性。物理设备,是用于保留逻辑卷中所存储数据的存储设备。它们是块设备,可以是…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
