- 博客(16)
- 收藏
- 关注
原创 栈结构与后缀表达式的思考
做1047这道题的时候,题目要求不断删除相邻相等的字符,删除之后两边字符挨在一起,还可能产生新的重复。最开始我下意识想循环遍历字符串,找到重复字符就切片删掉,可写的时候发现,删除完成之后前面的字符和后面的字符形成新邻居,还要重新从头判断,边界情况特别多。这里踩过一个很关键的坑,弹出数字的顺序不能弄反,先取出来的是右操作数,后取出的才是左操作数,减法和除法对顺序十分敏感,顺序颠倒答案就完全错误。但这样的做法会带来不少麻烦,修改原始数据之后会产生新的相邻关系,需要反复回退检查,代码写起来繁琐,执行效率也不高。
2026-09-08 15:41:35
156
原创 栈与队列核心原理
队列的操作边界同样受限,元素只能从队尾进入队列,只能从队首移出队列,无法直接获取、删除队尾元素,这也是栈和队列最核心的冲突点。整个模拟的核心逻辑非常简洁:我们只需要保证,每一次新加入的元素,始终处于所有元素的最前端,这样队列的队首元素,就等价于栈的栈顶元素。不同于数组可以随意访问任意位置元素,栈和队列都有着严格的操作受限特性,正是这种限制性,衍生出了大量经典的模拟题和算法思维题,吃透二者的底层逻辑,是进阶算法的关键一步。经过这样的处理后,主队列的队首永远是最后插入的元素,完美契合栈后进先出的特性。
2026-09-07 15:54:59
213
原创 浅谈递归思想:从基础案例到链表实战
等到递归到达终点开始回溯的时候,只需要改变相邻两个节点的指向,让后一个节点指向前一个节点,同时断开原来的正向链接,一层层向上完成整条链表的反转。其实递归的本质并没有想象中复杂,简单来说,递归就是一个函数在执行过程中调用自身,把一个规模较大、不容易直接解决的大问题,拆解成结构相同、规模更小的子问题,不断向下分解,直到碰到不能再拆分的边界条件,再沿着一层层调用的路线回溯,把结果带回来。递归最重要的两部分,一个是终止条件,也就是我们常说的基线条件,如果缺少它,函数会无休止调用自己,最终程序崩溃;
2026-09-03 15:44:31
159
原创 链表基础知识梳理
操作链表时还有一点格外重要,在插入或者删除节点的时候,我们往往需要找到目标节点的前驱节点,依靠前驱节点修改指针,操作过程中也要留意指针修改的先后顺序,稍有不慎就会丢失后面所有节点的引用,造成链表断裂。实现插入功能时我意识到,找到插入位置的前驱节点是整个操作的关键,调整指针也有先后之分,要先把新节点和后方链表相连,再修改前驱节点的指针。先搭建链表理解底层原理,再练习节点删除类的应用题,循序渐进,才能真正理解链表的精髓,之后再去挑战反转链表、环形链表等更加复杂的题目也会更加得心应手。
2026-09-02 15:13:42
224
原创 双指针与滑动窗口学习随笔
遍历结束,慢指针停留的位置就是有效元素的总数。原数组本身有序,但负数平方之后大小顺序会颠倒,平方后的最大值只会出现在数组的最左端或者最右端。依靠原数组自带的有序特性,一趟遍历就得到升序答案,相比先全部平方再整体排序,效率明显更高,也让我意识到审题时要挖掘题目隐藏的条件。右指针不断延伸扩大区间累加数值,当区间总和达到目标要求,立刻移动左指针收紧窗口,持续记录满足条件的最短区间长度。双指针借助两个位置标记协同遍历数组,只需要一趟扫描就能完成任务,省去大量重复计算,是解决数组类问题十分实用的技巧。
2026-09-01 15:53:49
180
原创 数组与二分查找学习随笔
在学习的时候我发现,二分查找最容易翻车的地方不在于逻辑本身,而是区间边界的把控。什么时候停止搜索,找到数据后如何调整左右两端的查找界限,稍微疏忽就会漏掉想要的数字,甚至陷入无休止的循环。只要清楚柜子的起始位置和编号,我们可以立刻打开指定的柜子取出东西,不用挨个翻找,这也就是数组最特别的优势。只有碰到合格、需要保留的内容时,走在后面的人才向前踏出一步,把有效物品放到自己当前的位置上。前面的人持续不断向前探查,后面的人慢慢整理出干净有效的序列,全程不需要大量移动元素,只用一趟遍历就完成清理。
2026-08-31 16:12:28
155
原创 Shell结构化命令完整学习笔记
在实际脚本开发中,各类结构化命令可以互相嵌套使用,在if内部再次编写完整的if判断语句,实现多层级逻辑校验,结合文件检测、数值对比、复合条件、高级括号运算,能够搭建完整、健壮的自动化脚本。逻辑与要求前后两组test条件全部成立,整体判断结果才为真;文件状态检测可以读取Linux文件系统的文件、目录属性,能够判断目标路径是否存在、是普通文件还是文件夹、文件是否可读、可写、可执行,同时支持校验文件归属用户、用户组,还能对比两个文件的创建修改时间,判断文件新旧,在日志、配置文件自动化处理脚本中使用频率极高。
2026-07-10 15:18:20
372
原创 Linux Shell脚本实操完整笔记
bin/bash,用来告知系统使用bash解释运行脚本,代码里#开头的内容仅作注释,不会参与执行。命令替换可以把命令运行结果存入变量,推荐$(指令)写法,课堂实操里用date +%y%m%d提取年月日生成日志文件名,每次运行脚本都会产出独立日志,避免文件覆盖。小数计算需要bc计算器,终端输入bc进入交互界面,scale可以设置保留小数位数,输入quit退出。echo用来自定义终端提示文字,普通echo输出后自动换行,加上-n参数可以取消换行,让提示文字和后续命令输出在同一行,方便优化终端展示效果。
2026-07-09 16:00:42
271
原创 Linux用户管理与文件权限实操实训记录
系统内置伪用户UID数值小于500,仅用于后台服务运行,无法登录终端;修改文件读写执行权限存在两种通用写法,数字八进制写法简洁高效,目录设置770权限代表属主与同组用户拥有读写执行权限,外部用户无任何访问权限,普通文件设置660权限仅开放读写权限,关闭执行权限。共享目录的搭建逻辑清晰,先创建统一公共分组,将需要协同操作的所有用户加入分组,修改文件目录归属至公共分组,再开放组内读写权限,完成配置后同组用户能够互相访问、编辑文件,不属于该分组的用户无法进入目录读取内容,兼顾协同办公与数据隔离安全。
2026-07-08 15:49:51
202
原创 Linux环境变量学习心得:弄懂变量、PATH与数组
env查看全局变量,set查看全部变量,export导出全局,unset删除变量。全局变量当前终端和新开的子shell都能读取,像HOME、PATH、PWD都是系统自带全局变量。~/.bashrc是当前用户专属文件,每次打开终端都会自动读取,自定义变量、PATH都写在这里最合适。环境变量算是Linux的基础内容,不管平时操作服务器还是写自动化脚本都离不开,分清临时和永久、全局与局部的区别,操作起来会省心很多。/etc/profile是系统级文件,所有用户登录都会加载,改动会影响整台机器,一般不建议修改。
2026-07-07 15:59:38
206
原创 Linux Shell深度学习手记:从概念到完整实操体系
除此之外还有快捷调用语法,!梳理完整学习脉络后能够搭建起闭环的Shell知识框架,从多类Shell解释器的查看切换,到父子Shell进程的生成逻辑与判断方式,再到四种命令运行模式的适用场景,内外置命令的底层区分原理,以及history、alias两大核心内置命令的参数用法与实操案例,所有知识点全部配套Xshell真实终端操作,完整覆盖课程小结要求的全部内容,清晰标注每条指令的用途与关键参数作用,完整复现本次实训的全部学习过程。将多条命令放进圆括号中,指令会在独立子Shell内执行,不会改变外层环境状态;
2026-07-06 16:16:15
251
原创 Vim编辑器基础操作实践总结
Vim是Linux系统内置的文本编辑器,分为三种核心工作模式:普通模式、插入编辑模式、底行命令模式。本次实验基于Xshell远程终端完成Vim编辑器全套基础操作,包含文件创建、模式切换、内容保存、关键词查找、范围替换等内容。在普通模式下输入冒号,进入底行命令模式执行各类管理指令。编辑器自带内部检索功能,可以定位文档内指定关键词,匹配内容会自动高亮,并且支持跳转到下一处匹配位置,快速遍历全文相同内容。在底行命令模式下,可以将编辑好的内容写入本地文件,也可以选择保存内容后直接关闭编辑器,避免编辑内容丢失。
2026-07-03 16:16:17
218
原创 Linux系统常用命令实操心得
接着新建了文本文件并写入一组数字,先按照字符规则对内容进行排列,再按照数值大小进行升序和降序调整,之后在文本里查找包含指定内容的行,筛选出不含有该内容的行,同时统计出匹配内容的行数,借助相关工具快速筛选整理文本信息。完成文本操作后,对文件进行压缩处理,生成压缩文件之后再将其解压还原,之后把文件打包并采用压缩格式生成压缩包,查看压缩包里面的文件信息,再将打包压缩的文件完整解压出来,学会了文件备份和压缩归档的办法。
2026-07-02 16:15:42
196
原创 Linux基础文件与目录实操学习笔记
cd命令用来切换进入不同的目录;从登录系统开始,一步步执行目录查看、创建文件夹、新建文件,最后把所有操作记录导出成日志文件。第二次想用快捷键打开SFTP传输文件,却弹出了属性窗口,最后右键会话标签成功打开传输窗口,把生成的文件下载到了本地电脑。通过这次实操我深刻体会到,Linux命令对格式要求非常严格,一个空格遗漏就会导致命令失效。我先定位自己所在的目录位置,查看主目录里面的内容,新建test文件夹并进入文件夹内部,创建一个空白文本文件,之后回到主目录,把所有敲过的命令全部保存到work.txt文件当中。
2026-07-01 16:48:34
191
原创 Xshell、Xftp基于SSH协议连接Linux虚拟机完整实操指南
整套流程走完就能完整掌握SSH协议的实际应用,从底层加密原理,到Xshell远程命令行连接虚拟机的完整操作步骤,同时覆盖实操中高频出现的网络、服务、权限类报错的分析与修复手段,搭配过程截图完整记录操作轨迹,最后借助配套Xftp工具完成跨系统文件传输,不管是初学Linux的学生,还是日常需要操作云服务器、虚拟机的使用者,这套基于SSH的工具组合都能大幅提升远程操作的效率,同时全程加密的传输方式也能规避明文传输带来的数据泄露风险,是学习Linux过程中必须熟练掌握的基础实操技能。
2026-06-30 15:35:33
371
原创 VMware虚拟机安装Ubuntu实践记录
新建虚拟机时选择典型安装模式,选中已经下载完成的Ubuntu镜像文件,自定义虚拟机保存路径,尽量不要存放在C盘,虚拟磁盘分配30GB以上的存储空间,并选择将磁盘保存为单个文件。时区设置为上海,填写好用户名与登录密码,等待系统文件复制完成后重启,基础系统就安装完毕了。如果开机黑屏,并且提示主机不支持VT-x虚拟化,一般是没有在BIOS中开启硬件虚拟化,或是Windows系统开启了Hyper-V组件,只要在BIOS打开虚拟化选项,再在Windows功能里关闭Hyper-V,重启电脑就能解决。
2026-06-29 17:01:48
274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅