LeetCode刷题笔试(一起来算法打卡吧!!!)

news2024/11/24 6:17:32

文章目录

  • 力扣刷题笔记(每日更新~)
  • 一、什么是时间复杂度?
  • 二、什么是递归?
  • 三、刷题记录
    • leetcode 70-爬楼梯
    • 剑指offer 10-斐波那契数列
  • 四、参考地址


力扣刷题笔记(每日更新~)

提示:这里可以添加本文要记录的大概内容:

本文主要用于记录刷题笔记,温故而知新~


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是时间复杂度?

时间复杂度: 时间复杂度是衡量算法运行时间随输入规模增长而增长的速度。它表示算法执行所需的基本操作次数步骤数量。通常使用大O记号(O)来表示时间复杂度,表示最坏情况下的运行时间上界。常见的时间复杂度包括:

  1. O(1):常数时间复杂度,算法的执行时间与输入规模无关
  2. O(log n):对数时间复杂度,常见于二分查找等分治算法。
  3. O(n):线性时间复杂度,算法的执行时间与输入规模成正比
  4. O(n logn):线性对数时间复杂度,常见于快速排序、归并排序等排序算法。
  5. O(n^2):平方时间复杂度,常见于冒泡排序、插入排序等。
  6. O(2^n):指数时间复杂度,通常表示暴力枚举等指数级别的算法。

空间复杂度: 空间复杂度是衡量算法所需的内存空间随输入规模增长而增长的速度。与时间复杂度类似,它也表示算法的额外资源消耗。通常也使用大O记号来表示空间复杂度。常见的空间复杂度包括:

  1. O(1):常数空间复杂度,算法的内存使用与输入规模无关,只使用有限的固定额外内存。
  2. O(n):线性空间复杂度,算法的内存使用与输入规模成正比
  3. O(n^2):平方空间复杂度,通常表示算法使用了二维数组等随着输入规模平方级别增长的内存。

二、什么是递归?

递归是一种编程技术,其中一个函数在其定义中调用自己,以解决问题或执行任务。递归可用于解决可以被分解为更小的相似子问题的问题。

举个套娃的例子来说明递归:

在这里插入图片描述

假设有一组套娃,每个套娃都可以包含另一个更小的套娃。我们的任务是逐个打开套娃,直到所有的套娃都被打开。这可以通过递归来实现。

 1. 打开最外层的套娃
 2. 在最外层套娃中找到下一层的套娃
 3. 重复步骤 2,直到找到最内层的套娃
 4. 逐层返回,打开每个套娃

递归的特点(方法的反复调用):

  1. 一个问题的解 可以分为几个子问题的解
  2. 问题 和 子问题 的求解思路完全一样,除了数据规模不同
  3. 存在终止条件

三、刷题记录

leetcode 70-爬楼梯

力扣题库地址:爬楼梯
题目:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例1:

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶

示例2:

输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶

分析图片:
在这里插入图片描述
执行代码:

public class StudyDemo {
    public static void main(String[] args){
        int n = 20;
        System.out.println(method(n));
    }

    public static int method(int n){
        if(n==1){
            return 1;
        } else if (n==2) {
            return 2;
        }else {
            int pre = 2;
            int prePre = 1;
            int result = 0;
            for(int i=3;i<=n;i++){
                result = pre+prePre;
                prePre = pre;
                pre = result;
            }
            return result;
        }
    }
}

完成!
在这里插入图片描述

剑指offer 10-斐波那契数列

四、参考地址

学习视频地址(感谢up主):https://www.bilibili.com/video/BV1nP411F7vW/?p=4&spm_id_from=pageDriver&vd_source=98092b0aee05ae7c890b09fe07f13df4

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

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

相关文章

PY32F003 FLASH

了解py32芯片的flash内容&#xff0c;对于py32进行api升级有更好的了解的操作 //uiOffset 0(4MHz), 1(8MHz), 2(16MHz), 3(22.12MHz), 4(24MHz) void SetFlashParameter(uint32_t uiOffset) {WRITE_REG(FLASH->KEYR, FLASH_KEY1);WRITE_REG(FLASH->KEYR, FLASH_KEY2); …

Android Studio翻译插件

进入File->Settings->Plugins界面&#xff0c;搜索Translation&#xff0c;选择这个 重启AS后&#xff0c;选中目标单词右键点击Translate即可&#xff1a;

MYSQL06高级_为什么使用索引、优缺点、索引的设计、方案、聚簇索引、联合索引、注意事项

文章目录 ①. 为什么使用索引②. 索引及其优缺点③. InnoDb - 索引的设计④. InnoDb中的索引方案⑤. 索引 - 聚簇索引⑥. 索引 - 二级索引⑦. B树索引的注意事项⑧. MyISAM中索引方案 ①. 为什么使用索引 ①. 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比去图书馆…

pytest测试框架之mark标记功能详细介绍

mark标记 ​ 在实际工作中&#xff0c;我们要写的自动化用例会比较多&#xff0c;也不会都放在一个py文件中&#xff0c;如果有几十个py文件&#xff0c;上百个方法&#xff0c;而我们只想运行当中部分的用例时怎么办&#xff1f; ​ pytest提供了一个非常好用的mark功能&…

机械厂工厂360全景展示拍摄制作,以便随时随地进行展示和更新

随着5G互联网技术的不断发展&#xff0c;线上全景虚拟展示已经成为了一种重要的展示方式。在工业领域中&#xff0c;厂区线上全景虚拟展示的应用也越来越广泛。 厂区线上vr全景虚拟展示是VR全景制作公司公司借助VR全景和web3d开发技术把企业的环境、研发、生产、产品、质检、仓…

06-2_Qt 5.9 C++开发指南_自定义对话框及其调用

本篇介绍到的对话框及其调用实例较为复杂但十分详细&#xff0c;如果做了解可以先参考&#xff1a;QT从入门到实战x篇_13_模态和非模态对话框创建。 文章目录 1. 对话框的不同调用方式2. 对话框QWDialogSize 的创建和使用2.1 创建对话框QWDialogSize2.2 对话框的调用和返回值 …

【数据结构功法】第八话 · 树与二叉树的基本概念

目录 &#x1f37a;知识点9&#xff1a;树的概念与性质 &#x1f36f;9.1 树的逻辑结构与性质 &#x1f34a;1.树的逻辑结构 &#x1f34a;2.树的相关术语 &#x1f34a;3.树的性质 &#x1f4dc;习题检测 &#x1f36f;9.2 二叉树的的定义与性质 &#x1f34a;1.二叉树…

微信如何多号定时群发?

微信作为国内最大的网络社交平台&#xff0c;目前用户已超过11亿。 掐点给朋友送生日祝福,给领导同事送新年祝福&#xff0c;提醒朋友的待办事项等等&#xff0c;这些定时发送功能一直都是微博 QQ&#xff0c;邮箱的专属&#xff0c;如果微信也能定时发送该多好&#xff1f;其…

【CSS3】CSS3 动画 ① ( CSS3 动画简介 | CSS3 动画实现步骤 | 动画定义 | 代码示例 )

文章目录 一、CSS3 动画简介二、CSS3 动画实现步骤三、动画定义四、代码示例 一、CSS3 动画简介 " 动画 " 是 CSS3 相较于 CSS 的 颠覆性 特性 之一 ; 在 CSS3 中 , 可以设置 多个 动画节点 , 精确地 控制 一个动画 或 若干动画 , 实现 复杂 的 动效 ; 动画可以实现…

CSS—选择器

目录 一、CSS简介 二、HTML页面中常用的元素 三、CSS语法规则 四、常用的选择器 五、选择器参考 一、CSS简介 CSS (Cascading Style Sheets&#xff0c;层叠样式表&#xff09;&#xff0c;是一种用来为结构化文档&#xff08;如 HTML 文档或 XML 应用&#xff09;添加样式…

Zabbix6.0监控

文章目录 一、Zabbix简介1&#xff09;zabbix 是什么&#xff1f;2&#xff09;zabbix 监控原理3&#xff09;Zabbix 6.0 新特性1、Zabbix server高可用防止硬件故障或计划维护期的停机2、Zabbix 6.0 LTS新增Kubernetes监控功能&#xff0c;可以在Kubernetes系统从多个维度采集…

【uniapp 小程序开发语法篇】资源引入 | 语法介绍 | UTS 语法支持(链接格式)

博主&#xff1a;_LJaXi Or 東方幻想郷 专栏&#xff1a; uni-app | 小程序开发 开发工具&#xff1a;HBuilderX 小程序开发语法篇 引用组件easycom Js文件引入NPM支持 Css文件引入静态资源引入css 引入静态资源如何引入字体图标&#xff1f;css 引入字体图标示例nvue 引入字体…

深入解析微店详情API:提升电商平台的技术实力

了解微店详情API的基本概念和功能&#xff1a; 微店详情API是用于通过商品ID获取商品详情数据的接口。它提供了丰富的商品信息&#xff0c;包括商品名称、价格、描述、规格、图片等。我们将介绍API的请求和响应结构&#xff0c;以及常见的参数和返回字段。 最佳实践&#xff1…

低版本Qt Creator安装方式

文章目录 一. 说明二.安装方法 一. 说明 安装最新的QT后自带的Qt Creator再打开的时候会很慢&#xff0c;并且打开项目后点击代码文件切换速度也会很慢&#xff0c;安装低版本的Qt Creator未出现这个问题&#xff0c;故选择安装低版本Qt Creator 二.安装方法 下载低版本Qt C…

中断子系统--硬件层(GICv3)

目录 综述 硬件层--GICV3 中断类型 中断状态 Distributor组件 中断使能配置 中断触发方式配置 中断优先级配置  中断分组标记 GIC处理中断流程 综述 由上面的block图&#xff0c;我们可知linux kernel的中断子系统分成4个部分&#xff1a; 硬件层&#xff1a;最下层…

学习总结(TAT)

好久都没交总结了&#xff0c;今天把之前的思路和错误整理了一下&#xff1a; 在服务器和客户端两侧&#xff0c;不可以同时先初始化获取输入流&#xff0c;否则会造成堵塞&#xff0c;同时为这位作者大大打call&#xff1a; (3条消息) 关于Java Socket和创建输入输出流的几点…

龙芯积极研发二进制翻译,提升软硬件兼容性,提高LoongArch架构

根据8月8日Phoronix报道&#xff0c;龙芯正在积极研发龙芯二进制翻译功能&#xff08;Loongson Binary Translationm&#xff0c;LBT&#xff09;以提高LoongArch架构与其他处理器&#xff08;如MIPS/x86/Arm&#xff09;的二进制翻译能力&#xff0c;这重要举措将显著提升龙芯…

【沁恒蓝牙mesh】CH58x flash分区之利用随机数作为蓝牙mesh地址

本文主要介绍了 沁恒蓝牙芯片 CH58x 的flash 分区与数据存储管理&#xff0c;利用随机数作为蓝牙mesh地址&#xff0c;蓝牙mesh采用自组网 &#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是喜欢记录零碎知识点的小菜鸟。&#x1f60e;&#…

【容器化】Oceanbase镜像构建及使用

通过该篇文章可以在国产X86-64或ARM架构上构建商业版oceanbase,只需要替换pkg安装包即可。下面截图主要以国产X86-64安装为例,作为操作截图: 镜像构建目录说明 pkg:用来存放安装包及脚本,抛出rpm其他是脚步,这些rpm包可以下载不同系统架构的包,构建镜像时该目录只需要保…

45.杜芬方程解仿真解曲线(matlab程序)

1.简述 Dufing方程是一种重要的动力系统山&#xff0c;是反映工程物理系统中非线性现象和混沌动力学行为的极其重要的方程式。通过Duffing方程可以探讨铁磁谐振电路中的分岔、拟周期运动、子谐波振荡。而在非线性与混沌系统的研究中&#xff0c;Duffing方程展示了丰富的混沌动力…