- 博客(16)
- 收藏
- 关注
原创 栈与队列实战:删除相邻重复项与逆波兰表达式求值(LeetCode 1047 & 150)
遍历 tokens,如果当前元素是运算符,则从栈中弹出两个操作数(注意顺序:先弹出的是右操作数,后弹出的是左操作数),进行运算后将结果入栈;题目:给出由小写字母组成的字符串 s,重复项删除操作会选择两个相邻且相同的字母,并删除它们。遍历字符串,对于每个字符,如果栈不为空且栈顶元素等于当前字符,说明遇到相邻重复项,弹出栈顶(相当于删除);示例:输入 tokens = ["2","1","+","3","*"],输出 9。解释:删除 "bb" 得到 "aaca",再删除 "aa" 得到 "ca"。
2026-09-08 10:27:14
166
原创 栈与队列实战:用栈实现队列与有效的括号(LeetCode 232 & 20)
遍历字符串,遇到左括号时,将对应的右括号压入栈(这样后续只需比较右括号是否匹配栈顶)。主要操作:push(进栈)、pop(出栈)、gettop(取栈顶)、empty(判空)。主要操作:push(入队)、pop(出队)、gethead(取队头)、empty(判空)。题目:给定一个只包括 '('、')'、'{'、'}'、'['、']' 的字符串 s,判断字符串是否有效。时间复杂度:push 为 O(1),pop 和 peek 在输出栈为空时需要转移元素,但每个元素最多被转移一次,均摊 O(1)。
2026-09-07 11:43:57
159
原创 链表与递归实战:反转链表与两两交换节点(LeetCode 206 & 24)
交换时,需要三个临时指针:temp 保存第一个节点,temp1 保存第二个节点的下一个节点。然后调整指针:current.next 指向第二个节点,第二个节点指向第一个节点,第一个节点指向 temp1。思路:假设从节点 head.next 开始后面的链表已经反转完成,那么只需要把 head.next 的 next 指向 head,head.next 设为 null 即可。斐波那契数列也是递归的经典例子:F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2) (n>=2)。
2026-09-04 10:35:18
212
原创 链表基础与实战:移除元素与设计链表
题目要求自己实现链表,包括 get、addAtHead、addAtTail、addAtIndex、deleteAtIndex 这几个接口。最简单的方法是使用虚拟头节点(dummy head),这样所有节点都有前一个节点,删除操作就统一了。链表是非连续内存,优点是插入删除只需修改指针(O(1)),缺点是查找只能顺序访问(O(n))。数组是连续内存,优点是可以随机访问(O(1)),缺点是插入删除需要移动元素(O(n))。题目:删除链表中所有值等于 val 的节点。时间复杂度 O(n),空间复杂度 O(1)。
2026-09-03 10:32:05
206
原创 双指针与滑动窗口:数组算法的实战解析
在数据结构与算法的学习中,数组是最基础且高频的考点之一。最近在复习数组算法时,我重新梳理了“有序数组的平方”和“长度最小的子数组”两道经典题目(分别对应力扣 977 和 209),它们分别用到了双指针法和滑动窗口法。这两种技巧不仅能有效降低时间复杂度,更是面试中的常客。
2026-09-02 11:01:23
347
原创 《数据结构开篇:二分查找与快慢指针的底层逻辑》
数据结构是相互之间存在一种或多种特定关系的数据元素的集合,元素之间不是孤立的,而是构成了某种结构。数据类型 数组名[数组长度];
2026-09-01 11:59:35
229
原创 使用结构化命令——Shell脚本逻辑控制实战
本文是《使用结构化命令》课程的实践总结,通过在Xshell中连接虚拟机,亲手操作了if-then语句、if-then-else语句、elif多分支语句、test命令的数值比较/字符串比较/文件比较、复合条件测试以及双方括号和双括号等核心内容。本文将按照PPT的顺序,逐一演示每个知识点的概念理解和实际操作,并附上操作截图,帮助正在学习Linux的你快速掌握Shell脚本的结构化命令。基本语法:if command then commands fi同一行写法:if command;
2026-07-10 11:48:59
190
原创 构建基本Shell脚本——从入门到实战
本文是《构建基本Shell脚本》课程的实践总结,通过在Xshell中连接虚拟机,亲手操作了Shell脚本的创建、执行、变量使用、数学运算以及退出状态码等核心内容。本文将按照PPT的顺序,逐一演示每个知识点的概念理解和实际操作,并附上操作截图,帮助正在学习Linux的你快速掌握Shell脚本的编写。多个命令执行分号(;):依次执行多个命令管道符(|):将前一个命令的输出作为后一个命令的输入脚本创建与执行创建脚本:vim filename.sh,第一行使用#!/bin/bash。
2026-07-09 11:28:30
187
原创 Linux用户管理与文件权限实战——从入门到精通
用户和组管理useradd:创建新用户账户groupadd:创建新组账户usermod:修改已有用户账户groupmod:修改组账户信息文件权限三个安全等级:属主、属组、其他用户三个访问权限位:读取(r)、写入(w)、执行(x)八进制权限值:0-7对应不同的权限组合权限修改命令chmod:修改文件和目录的安全设置(八进制模式和符号模式)chown:改变文件的所有者和所属组chgrp:改变文件的所属组共享目录创建组将用户加入组修改目录所属组。
2026-07-08 11:47:47
171
原创 Linux环境变量详解——从入门到实战
本文是《Linux环境变量》课程的实践总结,通过在Xshell中连接虚拟机,亲手操作了环境变量的查看、创建、删除、全局变量与局部变量的区别、PATH环境变量的配置、系统环境变量配置文件以及数组变量等知识点。本文将按照PPT的顺序,逐一演示每个知识点的概念理解和实际操作,并附上操作截图,帮助正在学习Linux的你快速掌握环境变量的使用。环境变量分类全局环境变量:对所有shell和子shell可见,使用env或printenv查看。
2026-07-07 11:05:00
187
原创 探索Linux Shell——从进程管理到命令优化
1.Shell类型echo $SHELL:查看当前Shellls -lF /bin/*sh:查看所有可用Shell父子Shellps -f:查看进程ps --forest:树状查看进程bash:创建子Shellexit:退出子Shell2.运行模式命令列表:cmd1;cmd2;cmd3(当前Shell执行)进程列表:(cmd1;cmd2)(子Shell执行)后台模式:command &(后台运行)协程:coproc name { command;
2026-07-06 11:17:28
195
原创 使用Vim编辑器与Shell命令补充——从入门到实战
vi编辑器是Unix系统最初的编辑器,它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。如果在使用命令vim时,指定了一个不存在的filename,vim会开辟一段新的缓冲区域来编辑,编辑完保存后相当于新建了这样一个文件。这里需要注意的是,如果file不存在,将会创建file,如果file存在,原有的文件内容将被新的输入内容所覆盖。如果在使用命令vim时,指定了一个已有文件的名字,vim会读取该文件的所有内容,放到一段缓冲区域来准备编辑。
2026-07-03 11:35:15
229
原创 更多Bash Shell命令实战——从进程管理到数据归档
本文是《更多的bash shell命令》课程的实践总结,通过在Xshell中连接虚拟机,亲手操作了Linux中进程管理、磁盘管理、数据排序、搜索和归档等常用命令。第一行:当前时间、系统的运行时间、登录的用户数以及系统的平均负载。df命令输出依次为:设备的设备文件位置、能容纳多少个1024字节大小的块、已用了多少个、还有多少个可用、已用空间所占比例、设备挂载到了哪个挂载点上。ps命令用于查看系统上运行的所有程序的信息。tar 归档文件 常用参数:-c、-x、-t、-v、-f、-z。
2026-07-02 11:49:34
233
原创 Linux基础命令实战——从小白到入门
本文是《Linux的基础知识和常用命令》课程的实践总结,通过在Xshell中连接虚拟机,亲手操作了Linux中最常用的基础命令。more是一个分页工具,适合查看较长的文件,每次显示一屏内容,按空格键翻页,按q退出。注意:Linux使用正斜杠(/)作为路径分隔符,与Windows的反斜杠(\)不同。less是more的升级版(“less is more”),支持上下翻动和搜索功能。mv(Move)用于将文件或目录移动到另一个位置,或重新命名。-a 显示所有文件(包括隐藏文件,即以.开头的文件)
2026-07-01 14:12:11
223
原创 Xshell连接虚拟机——SSH远程连接入门实践报告
SSH(Secure Shell,安全外壳协议)是一种网络协议,用于在不安全的网络中为计算机之间的通信提供加密通道。Xshell是一款基于SSH协议的Windows客户端软件,提供图形化界面,方便用户管理和连接远程服务器。点击"连接",首次连接接受密钥,然后输入虚拟机的用户名和密码,即可成功进入远程命令行界面。·解决方案:在虚拟机中重新输入 ifconfig命令,核对IP地址并重新填写。·解决方案:在虚拟机终端中手动输入密码确认无误后再在Xshell中输入。**多种认证方式:**支持密码、公钥等认证。
2026-06-30 10:10:29
182
原创 《从零开始安装 Ubuntu 虚拟机:VMware/VirtualBox 全流程指南 + 错误避坑》
• 清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/(https://mirrors.tuna.tsinghua.edu.cn/)• 阿里云开源镜像站:https://mirrors.aliyun.com/(https://mirrors.aliyun.com/)选择“正常安装”+“安装第三方软件” → 分区(推荐“擦除磁盘并安装”)启动虚拟机,进入安装界面 → 选择语言 → “安装Ubuntu”→ 解决:设置→网络→启用网络适配器→模式选“NAT”或“桥接”
2026-06-29 14:15:12
328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅