【LeetCode】剑指 Offer(4)

news2024/12/25 2:54:50

目录

写在前面:

题目:剑指 Offer 10- I. 斐波那契数列 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

题目:剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

 小总结:

写在最后:


写在前面:

军训好累,没话说了。

题目:剑指 Offer 10- I. 斐波那契数列 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    int fib(int n) {

    }
};

解题思路:

直接根据斐波那契数列的特性,

写一个循环即可。

代码:

class Solution {
public:
    int fib(int n) {
        //设置f1和f2两个变量作为计算数列下一个数的前两个数
        int f1 = 0;
        int f2 = 1;

        //这是题目的要求,我们利用一下,这样整形变量的大小就够用
        int m = (1e9 + 7);

        //这是第一个数和第二个数的情况
        if(n == 0)
        {
            return 0;
        }
        if(n == 1)
        {
            return 1;
        }

        int ret = 0;

        //写一个循环,根据斐波那锲数列规则计算下一个值
        for(int i = 0;i<n-1;i++)
        {
            //按题目要求取模
            ret = (f1 + f2) % m;
            f1 = f2;
            f2 = ret;
        }
        return ret;
    }
};

过啦!!!

循环就是比递归快,时间超过100%了。

题目:剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    int numWays(int n) {

    }
};

解题思路:

这道题一开始看的时候我是有点懵的,

然后我就算了一下条几级台阶会有几种方法,

0级台阶1种方法;(题目给了个示例)

1级台阶1种方法;

2级台阶2种方法;

3级台阶3种方法;

(如果先跳1级,就变成2级台阶的跳法;先跳2级,就变成1级台阶的跳法)

1 + 2 就等于3种方法。

4级台阶5种方法。

(如果先跳1级,就变成3级台阶的跳法;先跳2级,就变成2级台阶的跳法)

3 + 2 就等于5种方法。

这时,我们惊喜的发现,这不就是一个斐波那契数列吗,

我当场复用上一段代码。(记得要注意细节)

代码:

class Solution {
public:
    int numWays(int n) {
        //设置f1和f2两个变量作为计算数列下一个数的前两个数
        int f1 = 1;//记得改一下细节
        int f2 = 1;

        //这是题目的要求,我们利用一下,这样整形变量的大小就够用
        int m = (1e9 + 7);

        //这是第一个数和第二个数的情况
        if(n == 0)
        {
            return 1;//记得改一下细节
        }
        if(n == 1)
        {
            return 1;
        }

        int ret = 0;

        //写一个循环,根据斐波那锲数列规则计算下一个值
        for(int i = 0;i<n-1;i++)
        {
            //按题目要求取模
            ret = (f1 + f2) % m;
            f1 = f2;
            f2 = ret;
        }
        return ret;
    }
};

过啦!!!

 小总结:

刷题的意义之一,

其实就是当我们再次遇到类似的题目的时候,

我们能比别人更加容易想到更好的思路,就像这两道题目一样。

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

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

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

相关文章

河南工程学院2.17蓝桥杯培训

乘法口诀数列&#xff1a;https://www.acwing.com/problem/content/3466/ 剪绳子&#xff1a;https://www.acwing.com/problem/content/68Sin SinSine之舞&#xff1a;http://lx.lanqiao.cn/problem.page?gpidD5272 数列&#xff1a;https://www.acwing.com/problem/content/…

【郭东白架构课 模块一:生存法则】13|法则六:如何鉴别文化环境是否有利于架构师的生存?

你好&#xff0c;我是郭东白。 架构师通常并不管理团队&#xff0c;而是管理架构活动。更准确地说&#xff0c;是定义和引导架构活动。因为每个参与架构活动的个体&#xff0c;都有各自工作的优先级和汇报关系。因此在没有管理、考核和激励等手段的保障下&#xff0c;唯一能够…

Chrome 又不支持 HTTP/2 网站的原因

导读昨晚偶尔清理 Chrome 插件时发现我的 “HTTP/2 and SPDY indicator”插件好像好久没亮了。这个插件在你访问到一个支持 HTTP/2 &#xff08;或之前的 SPDY 协议&#xff09;的网站时会点亮&#xff0c;而我明明记得之前专门让 https://linux.cn/ 支持了 HTTP/2 。 我的第一…

软考高级-信息系统管理师之整体管理(最新版)

整体管理 1、项目整体管理概述2、制定项目章程(选择,案例,论文)制定项目章程过程制定项目章程的依据1、协议2.项目工作说明书:3、商业论证4、事业环境因素包括,但不限于如下事项。5、组织过程资产:项目选择方法项目启动会议项目目标引导技术3、制订项目管理计划(选择)项目管…

MakeFile编写 使用

目录 1、基本格式如下&#xff1a;2、GCC编译过程3、Makefile具体流程可参考下图&#xff1a;4、Makefile变量解析![在这里插入图片描述](https://img-blog.csdnimg.cn/50fdafadef79400abea65b64a12f8ec8.png)5、实例项目目录5.1 使用g直接编译5.2 Version 15.3 Version 25.4 V…

[oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端

编码进化 回忆上次内容 上次 回顾了 字符编码的新陈代谢 ibm 曾经的EBCDIC 由于 字符不连续导致 后续 出现无数问题 随着 网络的发展 数据交换的 需要原来的小隐患现在 产生了 巨大问题 Bemer 联合各方巨头 想要推出 字符连续的编码集 这新编码集 具体长什么样 呢&#xff1…

springmvc绿植培养交流平台java的ssm设计与实现

本绿植培养交流平台设计与实现以SSM作为框架&#xff0c;B/S模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块&#xff1a;个人中心、用户管理、品种类型管理、绿植信息管理、视频分类管理、视频信息管理、经验交流、系统管理等模块&#xff0c;通过这些模块的实…

Java之动态规划之机器人移动

目录 0.动态规划问题 一.不同路径 1.题目描述 2.问题分析 3.代码实现 二.不同路径 II 1.题目描述 2.问题分析 3.代码实现 三.机器人双向走路 1.题目描述 2.问题分析 3.代码实现 0.动态规划问题 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问…

九龙证券|连续七周获加仓,四大行业成“香饽饽”!

本周17个申万职业北上资金持股量环比增加。 北上资金抢筹铝业龙头 本周A股商场全体冲高回落&#xff0c;沪指收跌1.12%&#xff0c;深成指跌2.18%&#xff0c;创业板指跌3.76%。北上资金周内小幅净流入。在大盘体现较差的周四周五&#xff0c;北上资金别离逆市回流67.94亿元、…

Vue项目创建首页发送axios请求

这是个全新的Vue项目,引入了ElementUI 将App.vue里的内容干掉,剩如下 然后下面的三个文件也可以删掉了 在views文件下新建Login.vue组件 到router目录下的index.js 那么现在的流程大概是这样子的 启动 写登陆页面 <template><div><el-form :ref"form"…

blackduck issue fix

文章目录场景依赖包风险扫描插件——synopsys codesight安装其他工具snyk公司提供/允许的工具指定依赖版本场景 你在一个前端nodejs项目中使用到了好多个依赖包&#xff0c;其中某几个依赖包的某些版本是有风险的。 在项目上线前&#xff0c;你最好修复这些安全风险。这时&…

SVN 获取多版本间的更新内容

文章目录背景介绍操作步骤 - 获取某段时间内的代码更新内容背景介绍 公司有个项目期初明确要做微信小程序&#xff0c;没有做其他端的意向&#xff0c;并且当时团队人数有限&#xff0c;没有项目实践过 uniapp&#xff0c;项目时间周期紧&#xff0c;就没有用 uniapp 去实现 然…

Linux架设魔兽争霸3战网Battle.net私服

文章目录 用到的工具pvpgnpvpgn-support-1.2Warcraft 3 Loader for PvPGNBNetEditor.exe搭建服务端魔兽争霸3登录战网私服添加战网服务器地址使用Warcraft 3 Loader启动魔兽争霸3工具下载用到的工具 pvpgn PvPGN是一款免费开源的跨平台服务器软件,支持Battle.net和Westwood …

SpringSecurity源码分析(一) SpringBoot集成SpringSecurity即Spring安全框架的加载过程

Spring Security是一个强大的并且高度可定制化的访问控制框架。 它基于spring应用。 Spring Security是聚焦于为java应用提供授权和验证的框架。像所有的spring项目一样,Spring Security真正的强大在于可以非常简单的拓展功能来实现自定义的需求。 在分析SpringBoot集成的Spri…

张晨光-JAVA零基础保姆式技术教程之-事务

事务 课程目标 1、什么是事务 2、jdbc如何控制事务 3、设置事务的回滚点 4、事务的特性ACID 5、数据库事务的隔高级别事务理解 什么是事务&#xff1a; 指逻辑上一组操作&#xff0c;要么同时成功&#xff0c;要么同时失败。 举例&#xff1a; 转账 a 给b 转账 100 a原来有…

React Native Cannot run program “node“问题

概述 前几天mac重装系统了&#xff0c;用Android studio重新构建React native项目时&#xff0c;报Cannot run program "node"错误。 电脑系统为macOS 12.6.3 (Monterey)&#xff0c;M1 Pro芯片。设备信息如下图所示&#xff1a; 完整错误信息如下图所示&#xff…

链表OJ(七)删除有序链表中重复的元素-I -II

目录 删除有序链表中重复的元素-I 删除有序链表中重复的元素-II 删除有序链表中重复的元素-I 描述 删除给出链表中的重复元素&#xff08;链表中元素从小到大有序&#xff09;&#xff0c;使链表中的所有元素都只出现一次 例如&#xff1a; 给出的链表为1→1→21→1→2,返回1…

码农饭碗不保——ChatGPT正在取代Coder

码农饭碗不保——ChatGPT正在取代Coder 最近被OpenAI的ChatGPT刷屏了。我猜你已经读了很多关于ChatGPT的文章&#xff0c;不需要再介绍了。假如碰巧您还不太了解ChatGPT是什么&#xff0c;可以先看一下这篇文章&#xff0c;然后再回来继续。 与ChatGPT对话很有趣&#xff0c;…

【尊享版】如何从零到一掌控习惯?

超友们&#xff0c;早上好&#xff5e; 今天为你带来的分享是《如何从零到一掌控习惯&#xff1f;》&#xff0c;主要分为八个部分&#xff1a; 一、【为什么要培养习惯&#xff1f;】 二、【养成新习惯为什么很难&#xff1f;】 三、【习惯养成的原理是什么&#xff1f;】 …

D3.js绘图流程

简介 D3.js是由javaScript语言编写绘图库&#xff0c;其原理是&#xff1a;通过调用一系列内置函数&#xff0c;生成SVG&#xff0c;并在网页渲染。 本文以频率分布直方图案例为例&#xff0c;介绍使用D3.js的流程 流程 第一步 引用D3.js库 建立一个html文件&#xff0c;在…