自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 LeetCode热题100--盛水最多的容器

摘要:本文介绍了一种使用双指针法求解容器最大容积的算法。通过初始化左右指针分别指向数组两端,计算当前容积并记录最大值,然后移动较小高度的指针向内收缩。该方法在O(n)时间复杂度内高效解决问题,避免了不必要的计算。关键点在于每次只移动较小高度的指针,确保不会遗漏更大容积的可能性。代码实现简洁明了,通过比较左右指针指向的高度值决定移动方向,最终返回记录的最大容积值。

2026-02-06 11:33:43 73

原创 LeetCode 热题 100-连续最长序列

本文提出了一种高效查找最长连续序列的算法。核心思路是利用HashSet实现O(1)时间复杂度的查找和自动去重,并通过智能遍历策略优化性能。算法首先将所有数字存入HashSet,然后只从序列起点(即num-1不存在的数字)开始查找,确保每个序列仅被遍历一次。具体步骤包括:检查当前数字是否为序列起点,若是则向后扩展序列并记录长度。该算法时间复杂度为O(n),空间复杂度为O(n),相比暴力解法显著提升了效率。代码实现简洁明了,通过HashSet和双重循环实现了高效查找。

2026-02-04 23:18:53 127

原创 LeetCode 热题 100--字母异位词分组

本文提出了一种基于排序的字母异位词分组方法。核心思路是利用排序后的字符串作为哈希键:将每个单词排序后作为唯一标识,相同字母组成的单词排序后会得到相同字符串。算法步骤包括:创建哈希表存储分组,键为排序字符串,值为原始字符串列表;将字符串转为字符数组并排序;使用getOrDefault获取对应列表;将当前字符串加入列表并更新哈希表。该方法通过字符排序和哈希映射,有效实现了字母异位词的分组,时间复杂度主要取决于排序操作。

2026-02-03 22:50:58 362

原创 LeetCode--长度最小的子数组

摘要:本文介绍了一种使用滑动窗口算法求解最短连续子数组长度的方法。通过维护两个指针i和j分别表示窗口的起始和结束位置,当子数组和sum≥target时,记录当前窗口长度j-i+1并与最小值result比较。随后移动i指针缩小窗口,更新sum值。最终返回满足条件的最短长度,若无解则返回0。该方法时间复杂度为O(n),空间复杂度为O(1)。

2026-02-01 22:55:09 103

原创 LeetCode--有序数组的平方

摘要:本文提出一种双指针算法,对递增排列的整数数组(含负数)计算各元素平方并按递增顺序排列。通过左右指针i、j比较两端元素平方值,将较大值存入结果数组末尾并移动相应指针。算法时间复杂度O(n),空间复杂度O(n)。代码实现展示了从两端向中间遍历并反向填充结果数组的过程。

2026-02-01 22:08:45 82

原创 LeetCode--移除元素

数组中的元素是连续不间断的,因此移除元素,其实是被移除元素的下一个元素覆盖掉被移除元素,我们可以用一个快指针(fast)遍历这个数组,寻找我们新数组的值,如果原数组中的元素不等于val,则将快指针寻找到的数赋值给慢指针(slow的值对应新数组新存入元素下标),由慢指针存入新数组,直到快指针所指元素等于val,跳过该数,继续遍历。最终新数组中的元素个数其实就是slow的值(每存入一个数,slow++)双指针思想,运用快慢指针解决问题。

2026-02-01 21:45:23 92

原创 LeetCode热题100--两数之和

我们可以通过创建一个哈希表去存储我们的结果,逆向思维,我们要找两个和为target的数,我们可以遍历数组,看哈希表中有没有对应的target-nums[i],如果有,我们输出这两个数,如果没有,我们就将这个数存入到哈希表中,保证下一次便利的时候不会和自己匹配,同时继续看下一个数是否满足条件。既然要寻找两个整数,那么我们就通过遍历去找到两个元素i和j使他们的和等于target即可,注意j=i+1避免i和自己匹配。

2026-01-28 17:24:20 429

原创 计算机网络--TCP传输

TCP可靠传输机制与连接管理 摘要: TCP协议通过滑动窗口机制实现可靠传输,发送方根据接收方窗口动态调整发送速率。接收方采用累积确认和捎带确认机制,对乱序数据暂存处理而非直接丢弃,提高网络利用率。TCP要求确认延迟不超过0.5秒以避免不必要重传。全双工通信中双方各自维护发送/接收窗口。连接建立阶段需解决三个关键问题:确认对方存在、参数协商和资源分配。连接释放过程确保双方资源有序释放。这些机制共同保障了TCP的可靠性和高效性。

2025-12-21 14:47:42 903

原创 计算机网络-- TCP

TCP通过流量控制和拥塞控制机制确保数据传输效率。流量控制采用滑动窗口机制,接收方通过调整接收窗口大小限制发送速率,避免数据丢失。拥塞控制通过动态调整拥塞窗口(cwnd)来应对网络状况,包括慢启动、拥塞避免、快重传和快恢复四种算法。当检测到丢包时,快重传立即重传数据而不等待超时,快恢复则调整窗口大小避免不必要的慢启动。这些机制共同保障了TCP在高负载网络环境下的可靠传输和合理带宽利用。

2025-12-20 21:54:38 900 1

原创 计算机网络--运输层

摘要:本文介绍了计算机网络运输层的核心概念。运输层位于网络体系结构第四层,为应用进程提供端到端通信服务,主要包含TCP和UDP两种协议。运输层通过端口号标识应用进程,端口号分为熟知端口号、登记端口号和短暂端口号三类。文章对比了UDP和TCP协议的特点:UDP是无连接的简单协议,支持多种通信方式但不可靠;TCP是面向连接的可靠协议,提供流量控制和拥塞控制,但只能一对一通信。两种协议在连接方式、可靠性和首部开销等方面存在显著差异。

2025-12-20 21:13:31 946

原创 计算机网络--IPv4地址

IPv4地址是32位的全球唯一标识符,用于分配给互联网主机和路由器接口。由ICANN统一管理,我国通过APNIC申请。2011年IPv4地址耗尽,我国2014-2015年停止分配并转向IPv6部署。IPv4经历了三个编址阶段,采用点分十进制表示法。A、B、C类地址可分配使用,但需注意全0主机号为网络地址,全1为广播地址,均不可分配给设备接口。

2025-12-20 20:46:26 531

原创 计算机网络--网络层

网络层负责实现网络互联和数据包传输,主要解决服务类型、寻址和路由选择问题。TCP/IP协议栈的网络层称为网际层,核心是IP协议。网络层提供两种服务:面向连接的虚电路服务(如X.25、ATM)通过建立虚电路实现可靠传输;无连接的数据报服务(如因特网)由主机保证可靠性,分组独立路由,简化了网络核心设计。因特网采用数据报服务,将复杂功能置于边缘,核心仅提供尽力而为的分组交付。

2025-12-20 18:58:16 377

原创 计算机网络--可靠传输的实现机制

本文介绍了三种数据链路层协议:停止-等待协议(SW)、回退N帧协议(GBN)和选择重传协议(SR)。SW协议通过超时重传和序号机制确保可靠传输,但信道利用率低。GBN协议允许发送方连续发送多个分组,采用累积确认和全部重传机制,提高了效率但可能造成冗余重传。SR协议则通过选择性重传和逐个确认机制,只重传出错分组,进一步提升了传输效率。三种协议在发送窗口、接收窗口和确认机制上各有特点,适用于不同网络环境。

2025-12-19 15:40:04 947

原创 计算机网络--IP地址和子网划分

本文系统介绍了IP地址相关知识体系。首先阐述了IP地址的基本概念、组成结构和分类标准(A-E类),重点说明了公有地址和私有地址的区别。其次详细讲解了子网划分技术,包括等长子网划分的位数借用原理和变长子网划分(VLSM)的实际应用。然后介绍了CIDR无类别编址方式及其表示方法。最后解析了超网合并技术,说明了通过掩码左移实现网段合并的规则和判断标准。全文构建了从基础概念到高级应用的完整知识框架,涵盖了IP地址管理的关键技术要点。

2025-12-19 13:51:04 1186

原创 计算机网络--数据链路层

本文摘要:文章系统介绍了数据链路层的三个核心问题:1)封装成帧,将IP数据包封装为帧结构;2)透明传输,确保数据无限制传输;3)差错检验,重点阐述了奇偶校验和循环冗余校验(CRC)两种方法。其中,奇偶校验通过附加校验位实现简单检错,但存在漏检风险;CRC则采用多项式除法生成冗余码,具有更高的可靠性。文章通过实例详细说明了CRC的校验原理和实现过程,包括除数约定、冗余码计算和接收方验证等关键步骤,为理解数据链路层的差错控制机制提供了清晰的技术框架。

2025-12-19 11:15:09 821

原创 计算机网络 --物理层

本文摘要:数据通信基础涵盖物理层接口特性、信号传输类型和通信系统组成。传输介质分为有线和无线两类,包括同轴电缆、双绞线、光纤及无线电波等。数字通信涉及基带传输、编码方式和调制解调技术。多路复用技术通过频分、时分等方式提高信道利用率。物理层设备如中继器和集线器用于信号放大和扩展网络范围。这些技术共同构成了数据通信的底层架构,实现信息的可靠传输。

2025-12-19 10:44:18 1266

原创 计算机网络--网络基础概述

本文系统介绍了计算机网络的基本概念与发展历程。主要内容包括:1)网络定义及发展四个阶段;2)网络分类(按介质、速度、技术等)及其在信息浏览、电子商务等领域的应用;3)网络组成结构(硬件/软件、资源/通信子网);4)OSI七层模型(从物理层到应用层)及各层功能。重点阐述了网络与互联网、因特网的区别,以及OSI模型中各层的协议数据单元和核心功能。

2025-12-19 10:44:05 646

原创 软件测试--接口测试

本文介绍了接口测试的基本概念和方法。接口分为程序内部接口和系统对外接口两种类型,主要用于组件间的数据交互。接口测试主要验证数据交换、传递和控制管理过程,相比功能测试更简单直接。接口文档应包含请求地址、方法、参数等要素。接口测试的重要性体现在能发现前端测试难以覆盖的安全漏洞和异常处理问题。执行接口测试需要了解请求方法(GET/POST)和HTTP状态码,测试步骤包括:1)通过性验证;2)参数组合测试;3)接口安全测试(绕过验证、身份授权、参数加密);4)异常验证。最后还需结合具体业务逻辑设计测试用例,如登录失

2025-12-18 15:12:44 1664

原创 Python--文件

如上面代码所示, 如果一直循环的打开文件, 而不去关闭的话, 就会出现上述报错. 当一个程序打开的文件个数超过上限, 就会抛出异常. 注意: 上述代码中, 使用一个列表来保存了所有的文件对象. 如果不进行保存, 那么 Python 内置的垃 圾回收机制, 会在文件对象销毁的时候自动关闭文件. 但是由于垃圾回收操作不一定及时, 所以我们写代码仍然要考虑手动关闭, 尽量避免依赖自动关闭.使用记事本打开文本文件, 在 "菜单栏" -> "文件" -> "另存为" 窗口中, 可以看到当前文件的编码方式.

2025-12-18 13:05:52 966

原创 Python--字典

本文介绍了Python字典的基本概念和操作方法。字典是一种存储键值对的数据结构,可以通过键快速查找值。主要内容包括:字典的创建方式(使用{}或dict()),查找key(in操作符和[]访问),新增/修改元素(通过赋值操作),删除元素(pop方法),遍历字典(for循环),获取所有keys/values/items(keys()/values()/items()方法)。最后说明了合法的key类型必须是可哈希的(如数字、字符串、元组等),而列表和字典不可作为key。这些操作是Python字典编程的基础知识。

2025-12-18 11:30:51 713

原创 Python--列表和元组

本文介绍了Python中列表(list)和元组(tuple)的基本概念及操作方法。列表是可变的序列类型,用于存储多个元素,支持增删改查等操作;元组是不可变序列,创建后不能修改。文章详细讲解了列表的创建、访问、切片、遍历、增删元素等操作,并比较了列表与元组的异同。元组相比列表更安全且可哈希,适合作为字典键值。通过类比"散装辣条"和"包装辣条"形象说明了二者的主要区别。

2025-12-18 11:16:45 808

原创 Python--函数(下)

本文介绍了Python中变量作用域和函数执行的相关概念。在变量作用域方面,函数内部定义的局部变量与外部全局变量互不影响,通过global关键字可修改全局变量,而if/while/for语句块不会创建新作用域。函数执行过程包括调用、执行和返回,支持链式调用和嵌套调用,函数调用时会形成调用栈记录执行状态。递归是一种特殊的嵌套调用,需设置终止条件避免无限递归,其代码简洁但效率较低。此外,文章还介绍了参数默认值和关键字参数的用法,带默认值的参数需放在参数列表末尾,关键字参数允许显式指定参数传递顺序。这些概念对理解P

2025-12-18 10:26:13 964

原创 WebLink 即时通讯系统--测试报告

网页聊天室作为一种轻量级的即时通讯平台,因其无需安装额外软件、跨平台兼容性强、使用便捷等特点,受到了广大用户的青睐。本测试报告旨在对网页聊天室进行全面的测试,以确保其稳定性、安全性、易用性等方面均能满足用户需求。处理器 13th Gen Intel(R) Core(TM) i7-13700H (2.40 GHz)1.4 添加配置元件:HTTP请求默认值、HTTP Cookie管理器、CSV数据⽂件设置。浏览器:Chrome版本142.0.7444.176(正式版本) (64 位)

2025-12-17 18:45:31 465

原创 Python--函数(上)

本文介绍了Python函数的基本概念和使用方法。主要内容包括:1.函数是将重复代码封装的可重用代码块;2.函数定义语法def及调用方式;3.形参和实参的概念,支持多参数和动态类型;4.使用return返回单个或多个值,支持忽略部分返回值。通过示例展示了函数如何提高代码复用性和维护性,是Python编程的重要基础。

2025-12-13 15:51:54 741

原创 Python--语句

条件语句能够表达如果...否则..."这样的语义这构成了计算机中基础的。

2025-12-13 15:32:03 669

原创 Python--运算符

摘要:本文介绍了Python中的运算符分类及使用注意事项。算术运算符包括+、-、*、/、%、**、//,其中需注意除零异常、整数除法结果可能为小数、//为向下取整除法。关系运算符(<、>、==等)可用于数值和字符串比较,字符串按字典序比较,浮点数比较应避免直接使用==。逻辑运算符and、or、not具有短路求值特性。赋值运算符支持链式赋值和多元赋值,复合赋值运算符如+=替代了++/--操作。文章特别指出Python为避免混淆未采用++/--运算符。

2025-12-13 15:07:45 1031

原创 Python--注释和输入输出

本文介绍了Python编程中的注释和输入输出操作。注释分为单行注释(#开头)和多行文档字符串(三引号),用于解释代码逻辑。输入输出主要通过控制台实现:print()函数用于输出,支持f-string格式化;input()函数获取用户输入,返回字符串类型,需通过int()/float()等进行类型转换才能进行数值运算。文中还演示了计算方差和整数相加的代码示例,强调注释对代码可读性的重要性。

2025-12-13 14:45:50 944

原创 Python--常量和变量

本文介绍了Python编程中的基础概念:常量和表达式、变量和类型。在表达式中,Python支持基本算术运算,其运算符优先级符合数学规则。变量用于存储中间计算结果,命名需遵循特定规则。Python是动态类型语言,变量类型在运行时确定,支持整数、浮点数、字符串、布尔等多种数据类型。其中整数无大小限制,浮点数为双精度,字符串可用单/双引号表示并支持拼接。动态类型特性简化了中小型程序开发,但也可能增加大型项目的理解难度。

2025-12-13 13:55:54 766

原创 操作系统--内存管理

引入目的:更好的支持多道程序的并发执行,提高系统性能主要功能:(1)内存空间的分配与回收(2)存储的保护和共享:保证各道作业在各自的存储空间内运行,互不干扰(3)地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址。(4)内存扩充:利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存。

2025-12-11 13:15:44 749

原创 操作系统--死锁

本文摘要: 死锁是指多个进程因竞争资源陷入相互等待的僵局。其产生原因包括资源竞争、进程顺序不当和信号量使用错误。死锁需满足互斥、不剥夺、请求保持和循环等待四个必要条件。预防方法包括破坏这些条件之一,如资源编号分配法。系统安全状态指存在资源分配安全序列,避免进入不安全状态可防止死锁。通过合理资源分配策略,能有效预防和避免死锁发生。

2025-12-11 12:31:52 612

原创 操作系统--进程同步问题

摘要:生产者消费者问题描述生产者与消费者共享有限缓冲区时的同步互斥关系;读者写者问题分析多读者单写者访问共享文件时的互斥控制,指出读者优先算法可能导致写者饥饿;哲学家进餐问题展示五名哲学家共享五根筷子时可能产生的死锁场景。三个经典同步问题都涉及进程对共享资源的互斥访问与协调控制,需要合理设置信号量机制来解决同步与互斥问题。(149字)

2025-12-11 11:58:42 1205

原创 操作系统--进程同步

例:对于混合运算1+2*3,假设系统产生两个进程,加法进程和乘法进程,要让计算结果正确,一定要让加法进程发生在乘法进程之后,但实际操作系统具有异步性,若不加以制约,加法进程发生在乘法进程之前是有可能的,因此要制定一定的机制去约束加法进程,让它在乘法进程完成之后才发生。互斥也称间接制约关系,当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一进程才允许去访问此临界资源。对临界资源的访问,必须互斥地进行,在每个进程中,访问临界资源的那段代码称为临界区。

2025-12-10 20:49:05 1073

原创 操作系统--进程调度算法

若处理机正在执行第级队列中的某进程,这时又有新进程进入优先级最高的队列,则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回第级队列的末尾,把处理机分配给新到的更高优先级的进程。若它在一个时间片结束时尚未完成,调度程序便将该进程转入第2级队列的末尾,再以同样的方法放入第3级队列 .... 如此下去,当一个长进程从第1级队列依次降到第n级队列后,在第n级队列中便采用时间片轮转的方式运行。就绪的进程,而被剥夺的进程返回就绪队列的末尾重新排队,等待再次运行。

2025-12-10 17:11:39 458

原创 操作系统--调度(下)

FCFS调度算法属于不可剥夺算法,从表面上看,他对所有作业都是公平的,但若一个长作业先到达系统,就会使后面的许多短作业等待很长时间,因此它不能作为分时系统和实时系统的主要调度策略。高响应比优先调度算法主要用于作业调度,是对FCFS调度算法和SJF调度算法的一种综合平衡,同时考虑了每个作业的等待时间和估计的运行时间。在作业调度中,优先级调度算法每次从后备作业队列中选择优先级最高的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列。CPU繁忙型作业一般为长作业,I/O繁忙型作业为短作业。

2025-12-10 13:42:11 331

原创 操作系统--调度(上)

1.作业调度:又称高级调度,其主要任务是按一定的原则从外存上处于后备状态的作业中挑选一个(或多个作业),给它们分配内存、输入、输出设备等必要的资源,并建立相应的进程,以使得他们获得竞争处理机的权利。3.进程调度:又称低级调度,其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它,进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度。2.系统吞吐量:表示单位时间内COU完成作业的数量,长作业需要消耗较长的处理机时间,因此会降低系统的吞吐量,短作业能提高系统的吞吐量。

2025-12-10 12:41:36 588

原创 操作系统--进程与线程

本文介绍了程序的执行方式及进程相关概念。程序执行分为顺序执行(具有顺序性、封闭性和可再生性)和并发执行(具有间断性、失去封闭性和不可再现性)。为支持并发执行引入了进程概念,进程具有动态性、并发性、独立性和异步性特征,其状态包括运行态、就绪态和阻塞态。文章还阐述了进程控制、通信方式(共享存储、消息传递和管道通信),以及线程的基本概念,比较了进程与线程在调度、资源拥有、并发性等方面的区别,指出线程的引入是为了降低并发开销。

2025-12-09 20:03:16 1089

原创 操作系统--概念与特征

在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每个时刻,单处理机环境下实际仅能有一道程序执行,因此微观上这些程序仍是分时交替执行的,操作系统的并发性是通过分时得以实现的。系统中还有一类资源,这类资源允许一段时间内由多个进程“同时”访问,这里所说的同时通常是宏观的,而在微观上,这些进城可能是交替地对该资源进行访问,即“分时共享”的。是指多道程序环境下,由于资源有限,程序的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。

2025-12-09 18:23:04 806

原创 软件测试--用例篇

测试用例是实施测试时提供的一组集合,包含测试环境、操作步骤、测试数据、预期结果等要素。设计测试用例需遵循常规思维+逆向思维+发散性思维,并采用万能公式:功能、界面、性能、兼容性、易用性、安全测试。具体设计方法包括等价类划分(有效/无效输入)、边界值分析(边界及次边界值)、正交法(减少组合用例)、判定表法(逻辑关系)、场景法(业务流程)和错误猜测法(经验直觉)。这些方法综合使用可提高测试覆盖率和效率,确保系统功能正确性和稳定性。

2025-12-05 20:57:03 1004

原创 [MySQL数据库] 索引

MySQL索引是一种提高查询效率的数据结构,通过特定规则组织数据,类似书籍目录。索引能加速查询但会增加存储开销并降低增删改速度。MySQL自动为主键、外键等约束创建索引,也可手动创建。常见索引类型包括主键、唯一和普通索引,创建方式多样。索引应建在高频查询列上,过多索引会降低性能。传统数据结构如二叉搜索树、哈希表等因查询效率或范围查询限制不适合索引。MySQL采用B+树作为索引结构,其特点是数据有序、非叶节点仅作索引、叶节点链接便于范围查询。B+树三层结构可支持约2200万条记录的高效查询,仅需三次IO操作。

2025-12-05 19:56:39 1038

原创 数据库基本操作(下)

本文介绍了SQL中数据操作的基本语法。主要包括:1)INSERT语句用于单行/多行数据插入,支持全列或指定列插入;2)UPDATE语句修改数据,需注意不加WHERE条件会更新全表;3)DELETE语句删除数据,不加条件会清空整表;4)常用聚合函数COUNT、SUM、AVG、MAX/MIN的使用方法;5)通过INSERT...SELECT实现表间数据复制,需注意列名格式和数据类型匹配。文中强调了不加条件修改或删除数据可能带来的风险,操作时需谨慎。

2025-12-05 19:05:26 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除