leetcode-递归学习:斐波那契数列

Fibonacci数列 蓝桥杯入门训练----- Fibonacci数列 问题描述   Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。   输入格式   输入包含一个整数n。   输出格式   输出一行,包含一个整数,表示Fn除以10007的余数。 说明:在本题中,答案是要求Fn 阅读详情

在这里插入图片描述

这个 题目有很多种解答方式,非递归,递归,优化递归,尾递归等,普通的递归十分的消耗性能,会进行很多重复的运算,所以就用上了用数组或者map做缓存。当然最优解 是用尾递归,函数的运算 在尾部 直接return

先看看最普遍的递归

public static int fab(int n) { // 分析一段代码好坏,有两个指标,时间复杂度和空间复杂度 都是:O(2^n)
		if (n <= 2)
			return 1; // 递归的终止条件
		return fab(n - 1) + fab(n - 2); // 继续递归的过程
	}

会消耗大量的性能,一般需要考虑清除

public static int noFab(int n) { // 不用递归 O(n)
		// 循环
		if (n <= 2)
			return 1;
		int a = 1;
		int b = 1;
		int c = 0;
		for (int i = 3; i <= n; i++) {
		// 移位 累加
			c = a + b;
			a = b;
			b = c;
		}
		return c;
	}

下面是 使用数组和 map来进行实现

public static int fab2(int n) { // 用数组来做缓存 将为了O(n),空间也降至为O(n)
		if (n <= 2)
			return 1; // 递归的终止条件
		if (data[n] > 0) {
			return data[n];
		}
		int res = fab2(n - 1) + fab2(n - 2); // 继续递归的过程
		data[n] = res;
		return res;
static int constant = 1000000007;
    public static int fib(int n) {
        Map<Integer,Integer> map = new HashMap<>();
        return  fib(n,map);
    }
    public static int fib(int n,Map<Integer,Integer> map) {
        if(n < 2){
            return n;
        }
        if (map.containsKey(n)){// 如果有值 那么可以直接返回
            return map.get(n);
        }
        map.put(n -1,fib(n - 1,map));
        map.put(n -2,fib(n - 2,map));
        int res = (fib(n - 1,map) + fib(n - 2,map)) % constant;
        return res;
    }

最后展示 尾递归进行的操作,时间和空间复杂的都是O(n)

class Solution {
    int constant = 1000000007;
    public int fib(int n) {
        return fib(1,1,n);
    }
    public int fib(int pre,int res,int n) {
        if (n < 1) return 0; // 递归的终止条件
        if (n <= 2) return res;
        return fib(res % constant, (pre + res) % constant, n - 1);
    }
}

在这里插入图片描述

尾递归使用理解 在个人看来很难理解,很难使用,还需要大量的实践和练习才能熟练,加油

每日一题:斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。 每日一题:斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。 2020年11月25日,力扣,简单,斐波那契数 一、题目描述 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定 N,计算 F(N)。 示例 1: 阅读详情

相关推荐

SAP OBYC自动过账全解析:从BSX到WRX的会计科目配置指南

本文深入解析SAP OBYC自动过账功能,从BSX到WRX的会计科目配置全流程,涵盖评估分组代码、事务码和评估类等核心概念。通过实战案例展示如何实现库存变动到财务过账的自动化流转,提升企业财务数据的准确性和效率。

weixin_29239279的博客 418

斐波拉契数多种算法

/** * 斐波拉契数 */ public class Fibonacci { // 普通算法 public static int fab(int n ){ if (n <= 2){ return 1; } return fab(n-1) + fab(n-2); } // 非递归算法 // 不用递归 O(n) public static int fabFor(int n ){

张井天的博客 337

别再只会用QTcpSocket了!手把手教你用QSslSocket为你的Qt网络应用加上SSL/TLS加密(附完整代码示例)

本文详细介绍了如何将Qt网络应用从QTcpSocket迁移到QSslSocket,实现SSL/TLS加密传输。通过对比API差异、解析核心机制和提供完整代码示例,帮助开发者快速掌握安全网络编程技巧,有效防范数据窃听和中间人攻击等安全风险。

weixin_30654583的博客 400

python 入门之斐波那契数列递归表达式算法和非递归算法

题目: 斐波那契数列是一组有规律的数列:1,1,2,3,5,8,13,........,那么我们怎么用python 来完成此算法,并求出第200位的值是多少1.python 递归表达式实现: def fib(n):   return 1 and n &lt;= 2 or fib(n - 1) +fib(n - 2)print('\n 最终结果为 %d'%(fib(200))) ...

huahua128的博客 5468

暗黑破坏神2重制版 mod制作教程(一)

暗黑2重制版mod修改教程

hhhh2312的博客 7452

基于咸鱼最新九宫格图标验证码的语义增强模型识别

本文探讨了破解复杂验证码的技术思路,重点分析了某平台的九宫格验证码应对策略。作者提出通过图像语义抽取和增强技术来扩充数据集:先采集少量真实样本,利用形态学操作进行前增强生成变形图像,再通过叠加背景噪声进行后增强。同时强调真实数据集的重要性,建议采用真实+生成数据的混合训练方法。实验表明该方法可使模型准确率达到95%以上,但作者特别声明本文仅供技术研究,严禁用于非法用途。

码王吴彦祖的博客 601

LeetCode刷题Easy篇斐波那契数列问题(递归,尾递归,非递归和动态规划解法)

题目 斐波那契数列:  f(n)=f(n-1)+f(n-2)(n&gt;2) f(1)=1;f(2)=1; 即有名的兔子繁衍问题  1 1 2 3 5 8 13 21 .... 我的解法 递归 package com.puhui.goosecard.manage; /** * 2 * @Author: kerry * 3 * @Date: 2018/12/7 10:18 * 4...

Just Do It! 1216

最新Python爬虫实战(入门爬虫篇)——案例18:某气象局全国天气预报数据采集(详细爬虫思路截图 + 抓包动图演示+完整爬虫代码+详细注释)

本次案例针对某气象局天气预报网的静态HTML页面,实现了全国各地区天气数据的全自动化爬取,和之前案例17的动态接口爬虫不同,本次案例聚焦于静态页面的爬虫实现,覆盖了从抓包分析、请求模拟、数据解析到数据存储的完整爬虫流程,非常适合入门学习者巩固基础,核心知识点和实现要点总结如下:首先是页面分析的核心逻辑,静态HTML页面的数据爬取,核心在于通过浏览器开发者工具,完成完整的抓包分析和标签结构定位。

努力让自己发光,对的人才能迎着光而来 27万+

斐波那契数列求解的几种方法

斐波那契数列的定义是f(n + 1) = f(n) + f(n - 1),生成第 n 项的做法有以下3种。 1. 递归法: 1.1 原理 递归法求解的原理是把 f(n)问题的计算拆分成 f(n-1)和 f(n-2) 两个子问题的计算,并递归,以 f(0)和 f(1)为终止条件。 缺点: 大量重复的递归计算,例如 f(n) 和 f(n - 1)两者向下递归需要 各自计算 f(n - 2)的值。通过下...

黎先生的博客 4398

【47】软考软件设计师——全真模拟卷(下午题)|5道案例分析+答题模板+评分标准

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第47篇,属于**模块六:冲刺与模拟**第四篇,严格遵循软考下午题真题规范(5道案例分析题,150分钟,满分75分,45分及格),覆盖数据流图(DFD)、E-R图与关系模式、UML类图与用例图、算法设计与代码填空、设计模式应用五大核心题型。全文采用“真题级案例+分步答题模板+采分点明细+评分标准”的形式,每道题配套“审题技巧→解题步骤→规范作答模板→常见错误扣分点”,深度拆解案例分析题的得分逻辑,帮助考生掌握“按点踩分、规范表述、避坑扣分”的核心能力

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 685

C# + NAudio:构建支持实时音频处理的语音聊天应用(含回声消除)

本文介绍了如何利用C#和NAudio库开发实时语音聊天应用,重点实现回声消除功能。首先概述了NAudio库在音频处理中的作用,包括音频录制、播放和实时处理能力。然后详细讲解了构建基础语音聊天应用的过程,包括麦克风录制和扬声器播放的实现。接着深入探讨了回声消除的原理和实现方法,提出通过比较麦克风输入和扬声器输出的音频信号来消除回声,并给出了核心代码示例。最后,文章还讨论了性能优化方向,如多线程处理和网络传输扩展。该方案为开发高质量实时语音应用提供了实用参考。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1009

【算法-剑指 Offer】10- I. 斐波那契数列(递归;动态规划)

剑指 Offer 10- I. 斐波那契数列 - 力扣(LeetCode) 发布:2021年8月12日15:09:49 问题描述及示例 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计

赖念安的博客 297

LeRobot 入门教程(五)异步推理

本文介绍了基于SmolVLA的异步推理技术在机器人控制中的应用。通过将动作预测与执行解耦,异步推理消除了传统同步推理中的等待延迟,使机器人行为更加流畅。文章详细讲解了如何安装依赖、启动策略服务器和机器人客户端,并重点说明了关键参数actions_per_chunk和chunk_size_threshold的调整方法。实验表明,异步推理能显著提升机器人响应速度,特别适合大规模模型应用。最后,文章建议用户根据具体硬件和任务需求优化参数配置,以获得最佳性能。

2506_90492529的博客 1643

【JAVA】每日两道算法题0916_链表、递归

文章目录LeetCode21LeetCode334递归递归三要素:斐波那契数列99乘法表 LeetCode21 题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 标签:链表、递归 思路: 1.新的链表不需要重新定义,因为链表的插入是非常方便的。 2.如果l1或者l2为空链表,不需要合并,直接返回另一个链表。 代码实现: //递归实现 class Solution { public ListNode mergeTwoLists(ListNode l

weixin_38851970的博客 201

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

力扣算法学习day26-3

文章目录力扣算法学习day26-3509-斐波那契数题目代码实现70-爬楼梯题目代码实现 力扣算法学习day26-3 509-斐波那契数 题目 代码实现 class Solution { // public int fib(int n) { // if(n < 2){ // return n; // } // int result = dp(0,1,n-1); // return result;

weixin_45609749的博客 541

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

70. 爬楼梯

你有多少种不同的方法可以爬到楼顶呢?3、不用递归,多用一个数组空间复杂度增加。

用来自己学习,复习 405

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数据结构与算法——从递归入手一维动态规划【1】

简单记录对左程云系列算法课程--算法讲解066【必备】的学习,这是第一篇。

MiauwYuki的博客 724

进阶计划_算法思维_挑战100天_DAY16

爬楼梯的公式是:f(n)=f(n−1)+f(n−2)f(n)=f(n-1)+f(n-2)f(n)=f(n−1)+f(n−2),如果题目对时间有要求,这种大概率超时,所以还得优化,再去推导公式降低时间复杂度。你有多少种不同的方法可以爬到楼顶呢?1. 1 阶 + 1 阶 + 1 阶。基本动态规划问题都可以特例推导求解。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。

PGJYR135611的博客 526

【算法康复训练①】剑指offer P1

文章目录 1. 二叉树的最近公共祖先 2. 斐波那契数列 3. 青蛙跳台阶问题 4. 合并两个排序的链表 5. 反转链表 6. 二叉树的镜像 7. 二叉树的深度 8. 顺时针打印矩阵 9. 二叉搜索树的最近公共祖先 10. 两个链表的第一个公共节点 11. 对称的二叉树 12. 最长不含重复字符的子字符串 13. 连续子数组的最大和 14. 从尾到头打印链表 15. 删除链表的节点 16. 用两个栈实现队列 17. 求1+2+…+n.........

心海非海_のBlog 713

70. 爬楼梯、Leetcode的Go实现

博客主页:🏆看看是李XX还是李歘歘🏆 🌺每天分享一些包括但不限于计算机基础、算法等相关的知识点🌺 💗点关注不迷路,总有一些📖知识点📖是你想要的💗 ⛽️今天的内容是 Leetcode 70. 爬楼梯 ⛽️💻💻💻 70. 爬楼梯 假设你正在爬楼梯。需要 n阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 ...

分享包括但不限于计算机基础知识、数据结构与算法、Golang技术栈。年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及! 1585

Leetcode 509. 斐波那契数 C++

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: 输入:2 输出:1 解释:F(2) = F(1) + F(0) = 1 + 0 = 1. 示例 2: 输入:3 输出:2 解释:F(3) = F(2

weixin_43750513的博客 219

【万人千题计划】刷题报告11.17

1,斐波那契数列leetcode509 int fib(int n) { int fin; if(n<=1) return n; if(n==2) return n-1; else { int a=1; int b=1; int c; while(n-2) { c=a+b; a=b;

C_Ryson的博客 226

Leetcode每日1题——爬楼梯

主要目的为自我学习记录 日期: 2020年6月13日 题号: 70 自评难度: 官方评为简单难度,我认为有点难,得记忆下来 题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 题目来源于leetcode,地址 题解: 这次可没有暴力法了。 一开始毫无头绪,认为可以先除去2,按照余数以及排列

JKevin的博客 406

leetcode——斐波那契数列的递归和非递归实现

Fibonacci数列 斐波那契数列又称黄金分割数列。因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0,1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。 设f(n)...

魔筝炼药师 2294

力扣之递归——斐波那契数列

力扣之斐波那契数列 这道题的等级依然为简单,题型为递归,但是不递归也可以 递归解决斐波那契数列的代码比较简单,如下 public int fib(int n){ if(n<2){ return n; } return fib(n-1)+fib(n-2); } 这段代码有个问题,这样递归在数据量很大的时候,计算量就相当的大了,因为需要重复计算很多,如下图 这里相同颜色的都是重复计算的数值,当n很大的时候,重复计算的值就越多,所以我们可以利用一个map把计算过的值保存起来,每次计算之前先在map集合

weixin_46314604的博客 390

神奇兔子数列:斐波那契数列

假设第1个月有1对刚诞生的兔子,第2个月进入成熟期,第3个月开始生育兔子,而1对成熟的兔子每月会生1对兔子,兔子永不死去……那么,由1对初生兔子开始,12个月后会有多少对兔子呢? 兔子数列即斐波那契数列,它的发明者是意大利数学家列昂纳多•斐波那契(Leonardo Fibonacci,1170—1250)。 问题分析 我们不妨拿新出生的1对小兔子分析: 第1个月,小兔子①没有繁殖能力,所以还是1对。 第2个月,小兔子①进入成熟期,仍然是1对。 第3个月,兔子①生了1对小兔子②,于是这个月共有2(1+1=.

信仰还是要有的 3519
上一篇: 数据结构与算法-基础数据结构:队列实现
下一篇: 数据结构与算法-基础数据结构:链表学习
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值