- 博客(8)
- 收藏
- 关注
原创 leetcode hot100 除了自身以外数组的乘积
摘要:该算法解决"除自身以外数组乘积"问题,要求不使用除法且时间复杂度O(n)。通过两次遍历:第一次从左到右计算每个元素的左侧乘积并存入结果数组,第二次从右到左计算右侧乘积并与左侧乘积相乘。示例[1,2,3,4]的处理过程:先得到左侧乘积[1,1,2,6],再结合右侧乘积得到最终结果[24,12,8,6]。该方法仅使用O(1)额外空间,巧妙复用结果数组完成计算。
2026-01-10 09:17:29
388
原创 leetcode:42. 接雨水
本文介绍了使用双指针法解决"接雨水"问题的算法。通过维护左右指针和左右最大值,逐步计算每个位置能接的雨水量。算法基于木桶效应,通过比较左右最大值来确定当前处理方向,并累加每个位置能存储的水量。文章通过具体示例演示了算法的执行过程,最终计算出给定高度图能接的雨水总量为6个单位。该算法时间复杂度为O(n),空间复杂度为O(1),是一种高效的解决方案。
2025-12-26 17:08:08
456
原创 leetcode:739. 每日温度
该算法使用单调栈解决每日温度问题,计算每天需要等待多少天才能遇到更高温度。初始化结果数组answer全为0,维护一个存储索引的单调递减栈。遍历温度数组时,若当前温度高于栈顶索引对应的温度,则弹出栈顶索引并计算天数差存入answer。最终返回answer数组,表示每天需等待的天数。例如输入[73,74,75,71,69,72,76,73],输出[1,1,4,2,1,1,0,0]。时间复杂度O(n),空间复杂度O(n)。
2025-12-26 16:33:56
260
原创 leetcode:234.回文链表
该算法通过快慢指针找到链表中点,反转后半部分链表后与前半部分比较,判断链表是否为回文。具体步骤:1)使用快慢指针定位前半部分尾节点;2)反转后半部分链表;3)逐个比较前后两部分节点值;4)可选地恢复链表结构。时间复杂度O(n),空间复杂度O(1)。关键点在于反转链表时prev指针保存已反转部分,curr指针处理当前节点,通过临时保存next节点实现反转。
2025-12-25 16:13:26
378
原创 leetcode:236.二叉树的最近公共祖先
本文介绍了在二叉树中寻找两个节点的最近公共祖先(LCA)的递归算法。算法通过深度优先搜索遍历二叉树:若当前节点是p或q则直接返回;递归查找左右子树;若p和q分别位于左右子树则当前节点为LCA;若仅在一侧子树找到则返回该子树结果。文章结合代码详细说明了递归过程,并通过具体示例演示了算法执行流程,最终返回节点5作为p=5和q=4的LCA。该算法时间复杂度为O(n),空间复杂度为O(h),是理解二叉树和递归的典型案例。
2025-12-25 10:12:11
416
原创 二、ARM体系结构及编程模型
低功耗、低成本、高性能>采用RISC指令集>使用大量的寄存器>ARM/THUMB指令支持>三/五级流水线具体来说:1.采用RISC架构的ARM处理器一般具有如下特点:> 固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种;> 使用单周期指令,便于流水线操作执行;> 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。
2025-05-20 17:21:49
1404
原创 一、嵌入式系统总体概述
嵌入式应用软件开发和操作系统随着因特网技术的成熟、带宽的提高,ICP(Internet Content Provider,即互联网内容提供商)和ASP(Application Service Provider,即应用服务提供商)在网上提供的信息内容日趋丰富、应用项目多种多样,像手机、电视机、及电冰箱、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。这一阶段系统的主要特点是计算机硬件出现了高可靠、低功耗的嵌入式CPU,如ARM、PowerPC等,且支持操作系统,支持复杂应用程序的开发和运行。
2025-05-19 17:02:01
817
原创 HTB Crafty - Log4Shell利用链,Java逆向提权,内网高级提权
本文基于红队大佬的视频,由于本人懒得弄代理了,就直接跟着红队的视频一步步走了,不免有些磕磕绊绊,我已记录的尽可能详尽,希望读者能够学习思路并且进行引发思考。
2025-05-05 20:20:06
1702
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅