【力扣100】70.爬楼梯 || python中的@cache || 装饰器

添加链接描述
思路:

  1. 最后一节楼梯的方式来自倒数第二节和倒数第三节的方法
  2. 所以使用递归来做,定义递归出口n分别为1,2时候的方法种数:1种和2种
  3. 类似于斐波那契数列
  4. 超时了

优化:
5. 因为每次递归都要从n算到n为1和2的时候,所以用一个数组来记录算过的值
6. 在递归参数中添加一个数组,数组中有就返回对应值,没有就递归进行计算
7. 或者python加一个@cache解决问题

class Solution:def climbStairs(self, n: int) -> int:# 斐波那契数列dp=[0]*(n+1)# @cachedef func(n,dp):if n==1:return 1if n==2:return 2if dp[n]!=0:return dp[n]dp[n]=func(n-1,dp)+func(n-2,dp)return dp[n]return func(n,dp)


装饰器

我的理解:

  1. 位置是在定义一个函数之上,装饰器和函数定义中间不能有东西
  2. @cache装饰器是用来记录函数和它的参数,当参数一致时,就可以把记录拿出来
  3. 缓存的主要作用是避免重复计算,节省计算资源和时间。当某个函数被调用时,如果函数的输入参数与之前调用时的某个调用相同,那么缓存可以直接返回之前计算的结果,而不必重新计算。

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

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

相关文章

安卓Java面试题 1-10

🔥 1、简述Android的4大组件是哪些,它们的作用?🔥 Android的4大组件 1:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态…

Pytorch学习 day06(torchvision中的datasets、dataloader)

torchvision的datasets 使用torchvision提供的数据集API,比较方便,如果在pycharm中下载很慢,可以URL链接到迅雷中进行下载(有些URL链接在源码里)代码如下: import torchvision # 导入 torchvision 库 # …

VM 虚拟机 ubuntu 解决无法连接网络问题

添加网卡法 就是在虚拟机的设置那里多增加一个网卡

如何度量关键成果KR的完成情况?

明确度量指标 首先,需要为每一个关键成果(Key Result)设定明确的度量指标。这些指标应该是具体、可衡量的,以便能够清晰地反映关键成果的完成情况。例如,如果关键成果是提高网站的用户转化率,那么度量指标…

NOIP 2016普及组初赛试题及解析

NOIP 2016普及组初赛试题及解析 一. 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案.)。二. 问题求解(共2题,每题5分,共计10分)三. 阅读程序写结果(共4题,每题8分,共计32分)四. 完善程序 (前4空,每空2.5分,后6空,每空3分,共28分)一. 单项选…

论文阅读_解释大模型_语言模型表示空间和时间

英文名称: LANGUAGE MODELS REPRESENT SPACE AND TIME 中文名称: 语言模型表示空间和时间 链接: https://www.science.org/doi/full/10.1126/science.357.6358.1344 https://arxiv.org/abs/2310.02207 作者: Wes Gurnee & Max Tegmark 机构: 麻省理工学院 日期: 2023-10-03…

Linux设备模型(八) - sysfs

一,sysfs目录介绍 sysfs是一个基于内存的虚拟的文件系统,有kernel提供,挂载到/sys目录下,负责以设备树的形式向user space提供直观的设备和驱动信息。 sysfs以不同的视角展示当前系统接入的设备: /sys/block 历史遗…

滑动窗口算法

前言 滑动窗口作为一个考点较高的算法,广泛应用于子串问题中,本文将进行详细讲解。 一、滑动窗口是什么 滑动窗口是双指针算法的一种,基本思路为维护一个窗口,然后从前往后遍历元素进行运算。 二、滑动窗口算法和其他双指针算法…

Unity Samples和帧动画的问题

拖动序列帧图片和自己创建clip的帧率不同 我今天在创建帧动画的时候用了两种方式第一种是直接拖动序列帧图片到Hierachy,然后生成的第二种是这样我发现两者播放的动画速率不一样最后查了半天查不到原因。最后发现是Samples的原因,而且Unity把Samples这个…

分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测

分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测 目录 分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测。基于灰狼算法(GWO…

记一次Flink任务无限期INITIALIZING排查过程

1.前言 环境:Flink-1.16.1,部署模式:Flink On YARN,现象:Flink程序能正常提交到 YARN,Job状态是 RUNNING,而 Task状态一直处于 INITIALIZING,如下图: 通过界面可以看到…

小火星露谷模组管理页面简介

1. 已有详细介绍的功能 模组管理页面部分功能已经有较为详细的介绍: 添加模组:https://svmbbs.smallfire.cn/d/15-dian-nao-zhong-yi-jing-you-duo-ge-mo-zu-ya-suo-wen-jian-ru-he-pi-liang-an-zhuang一键更新模组:https://svmbbs.smallfi…

python基础——入门必备知识

📝前言: 本文为专栏python入门基础的第一篇,主要带大家先初步学习一下python中的一些基本知识,认识,了解一下python中的一些专有名词,为日后的学习打下良好的基础,。本文主要讲解以下的python中的基本语法&…

苹果发布iOS17.4正式版升级,罕见带来一大波新功能!苹果数据备份软件 iOS系统管理软件 苹果数据备份到icloud iOS系统数据处理

近日,苹果发布了iOS17.4正式版,没想到的是居然有一大波新功能,如果你也是用iPhone的话,尤其是iPhone15新系列的,那么推荐你一定要升级下。下面让我给大家详细讲讲: 「电池健康」升级 电池设置界面得到了优…

LightDB支持 no_expand hint【24.1】【oracle兼容】

LightDB 从 24.1 开始支持 oracle no_expand hint。 no_expand hint 用于取消OR-expansion优化,不进行OR-expansion优化。 OR-expansion 在 Oracle 中 优化器会基于cost 优化带析取的查询块(OR), 会拆分这个查询块为多个查询块,…

项目快速搭建脚手架

1.单体项目 5分钟搭建一个Spring Boot 前后端分离系统-Ballcat Ballcat 也会为每个版本的升级改动列出详细的更新日志,以及增量 SQL。 Github 地址 :https://github.com/ballcat-projects/ballcat Gitee 地址:https://gitee.com/ballcat-pro…

数字孪生10个技术栈:原型设计,界面从无到有雏形的第一步。

一、什么是原型设计 可视化界面的原型设计是指在设计过程中创建一个低保真或高保真的可视化模型,以展示和演示最终产品的外观、布局和交互。它是设计师和开发团队在实际开发之前用来验证和确认设计方案的一个重要步骤。 可视化界面的原型设计主要包括以下几个方面&…

【OpenCV】仿 IOS 锁屏时钟

OpenCV 是一个开源的计算机视觉(Computer Vision)与机器学习软件库,提供了多种图像处理算法与接口。在图像处理中,按位运算是一类重要的运算,可以用于提取图像的重要部分。本文主要记录如何使用 OpenCV-Python 绘制仿 …

Redis生产事故(Jedis)

现象 jedis(ClusterPipeline)在pipeline模式下发生读写错误并不会同步redis集群拓扑变化. 分析 jedis客户端本身不默认自动支持集群拓扑的刷新。Jedis是一个较为底层的客户端,它提供了与Redis服务器进行交互的基本功能,但对于集…

grid布局所有元素在同一行显示且等分列

目录 一、问题 二、实现方式 三、总结 tiips:如嫌繁琐,直接移步总结即可! 一、问题 1.grid布局可以通过 grid-template-columns来指定列的宽度。且可以通过repeat来指定重复的次数。但是现在的需求是:grid布局中元素的数量不确定&#…