- 博客(126)
- 收藏
- 关注
原创 三步问题 --- 动态规划
本文介绍了LeetCode面试题08.01的三步问题动态规划解法。该问题要求计算爬上n阶楼梯的不同方式数,每次可以迈1、2或3步。解法使用动态规划技术:1)建立dp数组存储中间结果;2)初始化前3个台阶的基准值(1,2,4);3)通过状态转移方程dp[i]=(dp[i-1]+dp[i-2]+dp[i-3])%MOD填充数组;4)最终返回dp[n]作为结果。代码实现采用MOD=1e9+7防止整数溢出,时间复杂度O(n),空间复杂度O(n)。
2025-05-31 20:31:22
284
原创 第N个泰波那契数列 --- 动态规划
本文给出了LeetCode第1137题"第N个泰波那契数"的两种解法。第一种使用动态规划,创建dp表存储中间结果;第二种通过变量滚动进行空间优化。两种方法的时间复杂度均为O(n),第二种将空间复杂度优化至O(1)。代码实现了泰波那契数列T(n)=T(n-1)+T(n-2)+T(n-3)的计算逻辑,初始条件为T(0)=0, T(1)=1, T(2)=1。
2025-05-31 20:06:41
329
原创 数青蛙 --- 模拟
本文介绍了力扣(LeetCode)第1419题“数青蛙”的两种代码实现方法。第一种方法使用if-else结构,通过哈希表记录字符出现的次数,并根据字符顺序更新哈希表,最终判断青蛙的叫声是否完整。第二种方法使用哈希表存储字符及其下标,通过数组模拟哈希表,检查字符顺序是否正确,并确保所有青蛙的叫声完整。两种方法都通过遍历字符串并更新哈希表来解决问题,最终返回所需青蛙的最小数量或-1表示无效输入。
2025-05-18 17:50:50
414
原创 点名(剑指 offer:0~n-1 中缺失的数字) -- 二分查找及多种方法实现
【代码】点名(剑指 offer:0~n-1 中缺失的数字) -- 二分查找及多种方法实现。
2025-04-13 16:00:00
347
原创 gdb的使用
在没有断点的情况下,直接跑完程序,如果有断点,会在运行到断点处停止,相当于VS调试下的F5。: 将main函数中定义的临时变量显示出来,相当于VS中的调试的自动窗口。:会展开部分代码,一般要看的改行代码,在所展示代码的中间位置。:直接回车会显示部分代码,可以持续按回车,直到代码显示完整。类似于在VS中有多个断点的情况下,按F5,跳转到下一个断点。类似与VS中的调试窗口,可以看见我们想看到的变量的变化。:一旦这个变量变化,就会通知,也算是断点的一种。在一个调试周期中,断点编号是线性递增的。
2024-11-05 17:06:54
1176
原创 gcc/g++使用
最后的答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函数“printf”了,而这也就是链接的作用。我们的C程序中,并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实“printf”函数的呢?选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。
2024-10-29 18:46:36
825
原创 vim使用
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。
2024-10-28 17:56:28
790
原创 Linux软件安装包管理器yum
"x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配. "el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.最后一列, base 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念.
2024-10-27 18:19:40
498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人