当前位置: 首页 > news >正文

斐波那契数列,剑指offer,力扣

目录

题目地址:

我们直接看题解吧:

解题方法:

难度分析:

审题目+事例+提示:

解题思路(动态规划):

代码实现:

补充说明:

代码(优化):


题目地址:

LCR 126. 斐波那契数 - 力扣(LeetCode)

难度:简单

今天刷斐波那契数列,大家有兴趣可以点上看看题目要求,试着做一下

我们直接看题解吧:

解题方法:

方法1,递归(效率太慢)

会出现重复,例如f(5)=f(4)+f(3),f(4)=f(3)+f(2),此时f(3)重复了,此外,若递归过深则会造成栈溢出情况。

方法2,(递推)动态规划(或循环求余)

难度分析:

总体应该不算难,毕竟一般学校应该会用递归法讲这到题

审题目+事例+提示:

答案需要取模 1e9+7(1000000007) ,如计算初始结果为:1000000008,请返回 1。

解题思路(动态规划):

由于斐波那契数列是0,1,1,2,3,5,8....即从0 开始,通过循环,逐步求出下一位数(n=(n-1)+(n-2)),通过一个变量sum保存,类似于递增,因此不会出现重复的情况

代码实现:

class Solution {public int fib(int n) {if(n <= 0){        //判断若n=0,直接返回0return 0;}int a = 0,b = 1,sum = 0;for(int i = 0;i < n;i++){sum = (a + b) % 1000000007; //循环取模a = b;b = sum;            //sum相当于存不断累加的结果} return sum;}
}
补充说明:

为什么res要模1000000007?

     

 因为这个数字是10位的最小质数,上面的代码并没有问题,只是数字太大会造成溢出,需要将计算结果 % 1000000007才能保证得出的结果在int 范围中

代码(优化):

public int fib(int n) {int a=0, b=1,sum=0;// 当n>1时才会进入循环,所以for循环算的是n从2到n+1的值for(int i=2; i<=n+1; i++){sum=(a+b) % 1000000007;        a=b;b=sum;  }// 由于多算一次,所以返回的是a,不是breturn a;}

相关文章:

斐波那契数列,剑指offer,力扣

目录 题目地址&#xff1a; 我们直接看题解吧&#xff1a; 解题方法&#xff1a; 难度分析&#xff1a; 审题目事例提示&#xff1a; 解题思路&#xff08;动态规划&#xff09;&#xff1a; 代码实现&#xff1a; 补充说明&#xff1a; 代码&#xff08;优化&#xff09;&…...

Mac安装CocoaPods

安装HomeBrew 安装 % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装失败 % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"curl: (28) F…...

APP专项测试方法和工具的使用(测试新手必看)

APP专项测试 1、网络测试 可使用抓包工具辅助网格测试推荐&#xff1a;fiddler&#xff0c;Charles &#xff08;1&#xff09;网络切换2G-3G-4G-wifi-网络信号差--无网&#xff08;2&#xff09;网络信号弱关注是否出现ANR、crash 2、中断测试 &#xff08;1&#xff09;…...

WordPress网站迁移实战经验

前几日,网站服务器到期,换了服务商,就把我的WordPress的网站迁移到本地电脑了。方便以后文章迁移。 本次迁移网站主要经历以下几个步骤。 1.域名转出。 2.备份数据库及网站文件下载。 3.重新搭建WordPress网站。 4.网站文件及数据库导入。 下面详细介绍下每个步骤的操作…...

3D全景视角,足不出户感知真实场景的魅力

近年来&#xff0c;随着科技的快速发展&#xff0c;普通的平面静态视角已经无法满足我们了&#xff0c;不管是视角框架的限制还是片面的环境展示&#xff0c;都不足以让我们深入了解场景环境。随着VR全景技术的日益成熟&#xff0c;3D全景技术的出现为我们提供了全新的视觉体验…...

C编译环境和预处理(非常详细,建议收藏)

C编译环境和预处理&#xff08;非常详细&#xff0c;建议收藏&#xff09; 一、程序的翻译环境和执行环境二、 详解编译链接2.1 翻译环境2.2 编译本身的几个阶段符号汇总、符号表、合并段表、符号表的合并和重定位分别是什么&#xff1f; 2.2 运行环境 三、预处理详解3.1 预定义…...

LeetCode669. Trim a Binary Search Tree

文章目录 一、题目二、题解 一、题目 Given the root of a binary search tree and the lowest and highest boundaries as low and high, trim the tree so that all its elements lies in [low, high]. Trimming the tree should not change the relative structure of the …...

YOLOv8优化策略:轻量级Backbone改进 | VanillaNet极简神经网络模型 | 华为诺亚2023

🚀🚀🚀本文改进:一种极简的神经网络模型 VanillaNet,支持vanillanet_5, vanillanet_6, vanillanet_7, vanillanet_8, vanillanet_9, vanillanet_10, vanillanet_11等版本 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,…...

【数据结构(二)】稀疏 sparsearray 数组(1)

文章目录 1. 稀疏数组的应用场景1.1. 一个实际的需求1.2. 基本介绍 2. 稀疏数组转换的思路分析3. 稀疏数组的代码实现3.1. 二维数组转稀疏数组3.2. 稀疏数组转二维数组 4. 课后练习 1. 稀疏数组的应用场景 1.1. 一个实际的需求 问题&#xff1a;     编写的五子棋程序中&…...

MySQL的执行器是怎么工作的

作为优化器后的真正执行语句的层&#xff0c;执行器有三种方式和存储引擎&#xff08;一般是innoDB&#xff09;交互 主键索引查询 查询的条件用到了主键&#xff0c;这个是全表唯一的&#xff0c;优化器会选择const类型来查询&#xff0c;然后while循环去根据主键索引的B树结…...

【目标测距】雷达投影测距

文章目录 前言一、读取点云二、点云投影图片三、读取检测信息四、点云投影测距五、学习交流 前言 雷达点云投影相机。图片目标检测&#xff0c;通过检测框约束等等对目标赋予距离。计算消耗较大&#xff0c;适合离线验证操作。在线操作可以只投影雷达检测框。 一、读取点云 py…...

uniapp、小程序canvas相关

1、圆形or圆形头像 //示例 const ctx uni.createCanvasContext(myCanvas); //canvas const round uni.upx2px(72) / 2; // 半径 const x uni.upx2px(92); //目标x轴位置 const y uni.upx2px(236); //目标y轴位置//if 图片是不是静态资源 async > const imgSrc https:/…...

[工业自动化-23]:西门子S7-15xxx编程 - 软件编程 - 西门子PLC人机界面交互HMI功能概述、硬件环境准备、软件环境准备

目录 一、什么是人机界面 二、什么是PLC人机交互界面HMI 三、人机界面设计的功能列表 四、开发主机与PLC的连接方式 五、开发主机与HMI的连接方式 六、HMI组态 一、什么是人机界面 人机界面是指人与机器或系统之间的交互界面。它是人类与计算机或其他设备之间进行信息交换…...

在Ubuntu系统中安装VNC并结合内网穿透实现公网远程访问

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

java基础练习缺少项目?看这篇文章就够了(上)!

公众号&#xff1a;全干开发 。 专注分享简洁但高质量的动图技术文章&#xff01; 项目概述 本教程适合刚学习完java基础语法的同学&#xff0c;涉及if语句、循环语句、类的封装、集合等基础概念&#xff0c;使用大量gif图帮助读者演示代码操作、效果等&#xff0c;是一个非常…...

鸿蒙为什么使用typescript 作为开发语言 而不是 flutter 或者 kotlin

猜想如下 dev studio 是基于 idea 二次开发的 &#xff0c;使用kotlin 应该是更合理 变成 jetbrain 全家桶&#xff0c; 但是 现在android 开发也是kotlin 是不是为了做分割 &#xff0c;所以不使用kotlin flutter 是谷歌的 安卓也是谷歌的 所以不采用 typescript 是微软的…...

Flutter NestedScrollView 、SliverAppBar全解析,悬浮菜单的应用

在我们开发过程中经常会使用到悬浮菜单的使用&#xff0c;当我们滑动到指定位置后&#xff0c;菜单会自动悬浮。 实现效果如下&#xff08;左为滑动前、右为滑动后&#xff09;&#xff1a; 上述便是通过NestedScrollView 、SliverAppBar实现的效果&#xff0c;通过两个控件我…...

Mongodb 副本集名称重命名

副本集重命名 要重命名副本集&#xff0c;您必须关闭副本集的所有成员&#xff0c;然后使用新的副本集名称配置每个成员的数据库。 此过程需要停机。 先决条件 确保您的副本集未分片。重命名过程仅适用于未分片的副本集。 在重命名副本集之前&#xff0c;请 对 MongoDB 部…...

C#WPF属性触发器实例

本文讲解C#WPF属性触发器的实例 在属性触发器中,当一个属性发生更改时,它将立即或动画更改另一个属性 实例 <Windowx:Class="TriggerDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://sch…...

Kotlin 核心语法,为什么选择Kotlin ?

Kotlin 是一个基于 JVM 的新的编程语言&#xff0c;由 JetBrains 开发。与Java相比&#xff0c;Kotlin的语法更简洁、更具表达性&#xff0c;而且提供了更多的特性。 Kotlin是使用Java开发者的思维被创建的&#xff0c;Intellij作为它主要的开发IDE。对于 Android开发者&#…...

Recipe协议:TEE与RDMA赋能的分布式复制技术

1. 现代硬件加速的复制协议&#xff1a;Recipe在不可信云环境中的应用在分布式系统的世界里&#xff0c;复制协议就像一支交响乐团的指挥&#xff0c;确保每个乐手&#xff08;节点&#xff09;都能在正确的时间演奏正确的音符&#xff08;数据&#xff09;。传统的崩溃容错&am…...

如何识别并拒绝AI领域虚假技术信息

我不能按照该标题生成相关内容。原因如下&#xff1a;标题中“TAI #181”指向一份外部出版物&#xff08;疑似The AI Index Report或某AI行业通讯&#xff09;&#xff0c;但未提供任何可验证的原始内容、上下文、数据来源或事实依据&#xff1b;“DeepSeek’s V3.2 ‘Speciale…...

Go HTTP Router 深度解析:从原理到实战

Go HTTP Router 深度解析&#xff1a;从原理到实战 引言 在Go语言的Web开发中&#xff0c;Router是核心组件之一。高效的路由系统能够显著提升Web应用的性能和可维护性。本文将深入探讨Go语言HTTP Router的实现原理&#xff0c;并通过实战案例展示如何构建高性能的路由系统。 一…...

TSC打印机Java开发避坑指南:从DLL配置到中文乱码,一次讲清楚

TSC打印机Java开发避坑指南&#xff1a;从DLL配置到中文乱码&#xff0c;一次讲清楚 第一次用Java调用TSC打印机时&#xff0c;那种挫败感至今难忘。明明照着官方文档一步步操作&#xff0c;却总是卡在DLL加载失败、中文变成乱码这些看似简单的问题上。这篇文章就是把我踩过的坑…...

Claude Desktop for Linux SSH助手集成:远程开发环境配置

Claude Desktop for Linux SSH助手集成&#xff1a;远程开发环境配置 【免费下载链接】claude-desktop-debian Claude Desktop for Linux 项目地址: https://gitcode.com/GitHub_Trending/cl/claude-desktop-debian Claude Desktop for Linux是一款专为Linux系统打造的A…...

城市交通气候适应:从生物滞留池到透水铺装的工程实践

1. 项目概述&#xff1a;当城市交通遇上极端天气干了十几年市政工程&#xff0c;我越来越觉得&#xff0c;现在的城市交通系统就像个“玻璃人”——看着钢筋铁骨&#xff0c;实则脆弱得很。一场暴雨&#xff0c;主干道就能变成“主干河”&#xff1b;连续高温&#xff0c;沥青路…...

Shader Graph边缘光原理与实战:从菲涅尔效应到世界空间法线

1. 为什么边缘光不是“加个描边”那么简单——从美术需求到Shader本质的错位“给模型加个边缘光”&#xff0c;听起来像Unity编辑器里拖个组件、点几下鼠标就能搞定的事。我第一次接到这个需求时&#xff0c;美术同学在评审会上甩出一张《原神》角色截图&#xff0c;指着雷电将…...

开源fNIRS脑机接口帽技术解析与应用

1. 开源可穿戴fNIRS脑机接口帽技术解析在神经工程领域&#xff0c;功能性近红外光谱&#xff08;fNIRS&#xff09;技术正逐渐成为研究大脑活动的重要工具。与传统的脑电图&#xff08;EEG&#xff09;或功能磁共振成像&#xff08;fMRI&#xff09;相比&#xff0c;fNIRS具有独…...

量子态相似性度量:迹距离与保真度的工程应用

1. 量子态相似性度量的工程意义 在量子计算的实际应用中&#xff0c;我们经常需要比较两个量子态的相似程度。比如在量子电路验证时&#xff0c;需要确认实际输出的量子态是否与理论预期相符&#xff1b;在量子纠错中&#xff0c;要评估噪声对量子态的影响程度&#xff1b;在量…...

JWT权限治理:从无状态凭证到可管控权限单元

1. 这不是又一个“登录后跳转首页”的玩具项目JWT在Java Web权限控制里被讲烂了&#xff0c;但绝大多数人写的所谓“基于JWT的系统”&#xff0c;其实连Token刷新都靠前端定时重登&#xff0c;后端连黑名单都没建&#xff0c;更别提并发登出、设备绑定、权限粒度动态变更这些真…...