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

【LeetCode】剑指 Offer(4)

目录

写在前面:

题目:剑指 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.lryc.cn/news/12253.html

相关文章:

  • 庄懂的TA笔记(十二)<>
  • 学分绩点(2023寒假每日一题 5)
  • Framework学习之旅:Zygote进程
  • HTTP基础知识
  • Delphi 10.4.2使用传统代码提示方案(auto complete)(转)
  • 存储类别、链接与内存管理(三)
  • Java:Linux(CentOS)安装、配置及相关命令
  • Linux 操作系统原理 — 多任务优先级调度策略
  • 链表学习之找到两个链表相交的第一个节点
  • 【Kubernetes】【十一】Pod详解 Pod的生命周期
  • Connext DDS录制服务 Recording Service(1)
  • vTESTstudio - VT System CAPL Functions - VT2004(续2)
  • 每天一个linux命令---awk
  • Open3D 点云旋转之轴角式(Python版本)
  • Error: Timeout trying to fetch resolutions from npm
  • Python基础3
  • 高可用集群(HAC)
  • python基于django微信小程序的适老化老人健康预警小程序
  • 基于微信小程序图书馆管理系统
  • 将镭神C32激光雷达的PointXYZ数据转化为PointXYZIR格式 - 附代码
  • 高级前端一面面试题集锦
  • Java基础 -- List集合
  • 【Linux】网络编程 - Socket套接字/基于UDP的网络通信
  • 流程引擎之Camunda简介
  • Mybatis笔记整理
  • 【react全家桶】面向组件编程
  • Django框架之模型视图-使用 PostMan 对请求进行测试
  • (考研湖科大教书匠计算机网络)第五章传输层-第四节:TCP流量控制
  • 使用Docker-Compose搭建Redis集群
  • 华为OD机试 -计算网络信号(Js)