- 博客(12)
- 收藏
- 关注
原创 LeetCode3.无重复字符的最长字串
给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。1因为无重复字符的最长子串是"b",所以其长度为 1。3因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。
2025-06-08 15:01:19
432
原创 LeetCode42.接雨水
摘要:本文介绍使用双指针法解决接雨水问题。通过维护左右指针和左右最大高度值,动态计算每个位置能接的雨水总量(由左右最大高度的较小值决定当前位置水量)。算法时间复杂度O(n),空间复杂度O(1),示例代码展示了如何实现该解法,如输入[0,1,0,2,1,0,1,3,2,1,2,1]时输出6单位雨水。该解法是空间最优的高效解决方案。
2025-06-08 14:32:21
493
原创 LeetCode283. 移动零
【摘要】本文介绍了一种原地移动数组中零元素到末尾的算法,使用双指针技术实现。通过维护left和right两个指针,当right指针遇到非零元素时,将其与left指针位置交换并同时右移,否则仅移动right指针。这种方法确保了非零元素的相对顺序不变,时间复杂度为O(n),空间复杂度为O(1)。示例代码展示了在C++中的具体实现,通过遍历数组一次即可完成所有零元素的移动。
2025-06-05 10:56:20
267
原创 LeetCode128. 最长连续序列
题目要求找出未排序整数数组中最长连续数字序列的长度。解决方案使用哈希表存储元素实现O(1)时间查找,通过判断每个元素是否为连续序列起点(即前驱不存在),向后扩展序列并记录长度。最终返回最长序列长度。该算法时间复杂度为O(n),空间复杂度为O(n),满足题目要求。核心思路是通过哈希表快速查找和仅从序列起点扩展来避免重复计算,确保高效性。
2025-06-05 10:32:06
245
原创 LeetCode49. 字母异位词分组
摘要: 该算法通过哈希表分组字母异位词。核心步骤:1)将每个字符串排序后作为哈希表的键;2)原字符串存入对应键的列表中;3) 遍历哈希表输出分组结果。时间复杂度为O(nklogk)(n为字符串数量,k为最大长度),空间复杂度O(nk)。优化方向可用字符计数替代排序。代码简洁高效,展示了哈希表在分类问题中的典型应用。
2025-06-05 10:05:52
338
原创 HTTP 与 HTTPS
加密成密文后,发送给服务器,服务器解密后,用相同的摘要算法算出发送过来的明文,通过比较客户端携带的「指纹」和当前算出的「指纹」做比较,若「指纹」相同,说明数据是完整的。客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。,它能够为数据生成独一无二的「指纹」,指纹用于校验数据的完整性,解决了篡改的风险。,能够为数据生成独一无二的「指纹」,用于校验数据的完整性,解决了篡改的风险。只使用一个密钥,运算速度快,密钥必须保密,无法做到安全的密钥交换。
2025-05-29 20:26:15
1526
原创 HTTP 特性
HTTP 1.1的核心优势在于简单灵活、易于扩展和跨平台应用,其报文格式简明,允许自定义扩展,且广泛适配各类终端。然而其无状态特性在提升服务器性能的同时,也导致关联操作繁琐,需依赖Cookie保持会话;明文传输便于调试但存在安全隐患,易被窃听和篡改。性能方面,通过长连接减少TCP开销,管道机制提升并发效率,但仍存在队头阻塞问题。这些缺陷促使了HTTPS及HTTP/2/3等后续协议的演进。
2025-05-29 20:18:02
651
原创 GET 与 POST
GET和POST是HTTP的两种主要请求方法。GET用于从服务器获取资源,是只读操作,安全且幂等,不会修改服务器数据。POST用于向服务器提交数据,请求数据放在报文体中,会修改服务器资源,因此不安全且不幂等,多次提交会创建多个资源。例如浏览网页使用GET,提交表单使用POST。
2025-05-29 19:32:29
144
原创 HTTP 基本概念
HTTP(超文本传输协议)是用于两点之间传输超文本数据的计算机通信协议。它由三个核心部分组成:"协议"定义了计算机间的通信规范;"传输"实现了双向数据传递,支持中间节点接力;"超文本"涵盖文字、图片、视频等多媒体内容。HTTP状态码分为五类:1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务端错误)。常见字段包括Host(指定域名)、Content-Length(数据长度)、Connection(保持连接)、Con
2025-05-29 19:20:08
522
原创 TCP 基本认识
TCP是面向连接的可靠传输协议,通过序列号、确认应答号和窗口控制等机制保证数据有序可靠传输。它使用四元组(源/目的IP和端口)唯一标识连接,建立连接需要协商Socket、序列号和窗口大小。TCP提供流量控制和拥塞控制,首部开销较大。相比UDP,TCP适用于需要可靠传输的场景如HTTP、FTP,而UDP更适合实时性要求高的多媒体通信。TCP连接数理论上受IP和端口数限制,实际还受文件描述符和内存制约。
2025-05-29 14:40:18
1518
原创 力扣206:反转链表
反转链表是一个经典的链表操作问题,其核心在于改变链表节点的指针方向,将原本的链表顺序逆转。下面我将提供两种常见的实现方法:迭代法和递归法。
2025-05-29 14:34:44
1950
原创 一.选择排序
1.遍历数组,选择找到最大值,记录最大值下标maxindex,然后将最大值与最后一个值交换,即swap(vec[maxindex],vec[n-1])2.在剩下的待排序数组中,重新找到最大值,重复第一步,swap(vec[maxindex],vec[n-2]),循环操作,直至数值排序完成。在原数组上操作,故使用了常量级空间O(1)第二次排序是n-1个元素,比较n-2次。第一次排序是n个元素,比较n-1次。第n-1次排序是2个元素,比较1次。元素交换次数为k(k<n-1次)第n次排序是1个元素,比较0次。
2025-04-17 13:56:22
208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅