- 博客(56)
- 收藏
- 关注
原创 LeetCode 238. 除自身以外数组的乘积
本文介绍了一种高效计算数组除自身元素外其他元素乘积的算法。给定数组nums,要求返回数组answer,其中answer[i]等于nums中除nums[i]外所有元素的乘积。算法通过两次线性遍历实现:第一次从左到右计算前缀乘积并存入结果数组,第二次从右到左计算后缀乘积并与前缀乘积相乘。该方法时间复杂度为O(n),空间复杂度为O(1)(结果数组不计入),且能正确处理包含0的情况。示例演示了计算过程,并提供了C++实现代码。算法避免了除法运算,更稳健高效。
2025-10-04 00:28:26
1030
原创 LeetCode 148.排序链表
本文介绍了使用归并排序对链表进行升序排序的方法。归并排序的时间复杂度为O(n log n),适合链表结构。算法分为三个步骤:1)用快慢指针找到中点分割链表;2)递归排序左右两部分;3)合并两个有序链表。C++实现中,通过getMiddle函数分割链表,merge●●●merge函数合并链表。递归方式的空间复杂度为O(log n),若改为迭代可实现O(1)空间复杂度。相比其他排序算法,归并排序链表排序的最佳选择,因其结合了高效的时间复杂度和链表友好的操作特性。
2025-10-02 23:12:21
534
原创 LeetCode 55.跳跃游戏
本文介绍了一个跳跃游戏问题,给定非负整数数组nums,判断能否从第一个位置跳跃到最后一个位置。采用贪心算法解决,维护一个变量farthest记录当前能到达的最远位置。遍历数组时,若当前位置超出farthest则返回false,否则更新farthest为当前位置加跳跃长度的最大值。若farthest超过数组末尾则返回true。时间复杂度O(n),空间复杂度O(1)。示例验证了算法的正确性,如[2,3,1,1,4]返回true,[3,2,1,0,4]返回false。该解法高效且简洁。
2025-09-30 02:39:07
444
原创 LeetCode 138.随机链表的复制
本文介绍了两种复制带随机指针链表的方法。重点推荐三步原地交织法,通过在原节点后插入拷贝节点(步骤1),利用相对位置关系设置random指针(步骤2),最后拆分恢复原链表并提取拷贝链(步骤3),实现O(n)时间和O(1)额外空间。文章提供了详细伪代码、C++实现和逐步解释,并对比了哈希映射法的优缺点。该方法高效且节省空间,特别适合处理大规模链表复制问题。注意事项包括处理空指针和正确拆分链表等边界情况。
2025-09-30 02:23:23
894
原创 LeetCode 48. 旋转图像
本文介绍了一种原地顺时针旋转n×n矩阵90度的高效算法。算法分为两步:首先进行矩阵转置(沿主对角线翻转),然后对每一行进行左右翻转。通过C++代码示例展示了具体实现,时间复杂度为O(n²),空间复杂度为O(1)。该解法满足题目要求的原地修改条件,无需额外存储空间,适用于方阵的快速旋转操作。
2025-09-28 10:17:47
443
原创 LeetCode 54. 螺旋矩阵
本文介绍了一种按顺时针螺旋顺序遍历矩阵的算法。该方法通过维护四个边界指针(top, bottom, left, right)来分层遍历矩阵,每次处理完一圈后缩小边界范围。算法时间复杂度为O(mn),空间复杂度为O(1)。关键点在于正确处理边界条件,避免重复访问单行或单列的情况。文章提供了伪代码和C++实现,并分析了算法的正确性和复杂度,适用于各种矩阵尺寸,包括空矩阵和单行/单列的特殊情况。
2025-09-28 09:25:48
542
原创 LeetCode 114.二叉树展开为链表
本文介绍了将二叉树原地展开为单链表的算法。题目要求将二叉树按先序遍历顺序展开为链表,所有节点的left指针设为null,通过right指针连接。核心解法采用递归:先展开左右子树,然后将左子树插入当前节点与右子树之间,最后将原右子树接到新链表末尾。C++实现展示了具体操作步骤,时间复杂度为O(n),空间复杂度取决于树高(O(log n)到O(n))。该算法高效地完成了二叉树的线性化转换,适用于需要原地修改的场景。
2025-09-27 23:15:14
399
原创 LeetCode 199.二叉树的右视图
本算法使用右优先的深度优先搜索(DFS)实现。关键思路是按当前节点→右子树→左子树的顺序遍历,确保每层首次访问的节点即为最右侧节点。该方法时间复杂度为O(n),空间复杂度O(h)(h为树高),优于广度优先搜索的空间消耗。文章提供了伪代码和C++实现,并分析了正确性、复杂度及与BFS方案的对比。推荐使用右优先DFS以获得更优的空间效率。
2025-09-27 22:52:27
930
原创 LeetCode 739 每日温度
本文介绍了LeetCode 739题"每日温度"的解法。题目要求找出每一天之后第一个更高温度出现的间隔天数。采用单调栈方法,维护一个温度递减的栈存储日期索引。遍历数组时,当前温度若高于栈顶日期温度,则弹出栈顶并计算间隔天数,否则入栈。该方法时间复杂度O(n),空间复杂度O(n),相比暴力解法更高效。文章包含问题描述、思路解析、伪代码和C++实现。
2025-09-05 07:30:05
379
原创 Qt QJsonObject
QJsonObject是Qt6处理JSON数据的核心类,用于表示键值对组成的无序集合,本质类似std::unordered_map<QString, QJsonValue>,支持动态增删改查和嵌套结构。其特性包括键唯一性、自动内存管理、严格JSON规范兼容性,需配合QJsonDocument实现序列化。典型应用包括API响应解析、配置文件读写等。使用时需注意键为QString类型、类型转换安全及性能优化。
2025-09-04 21:07:00
1711
原创 LeetCode 121. 买卖股票的最佳时机
这篇文章介绍了一种计算股票买卖最大利润的最优算法。该算法通过单次遍历数组,动态维护历史最低买入价和当前最大利润,实现高效计算。时间复杂度为O(n),空间复杂度为O(1)。相比暴力解法,该算法通过贪心思想大幅优化了性能,是解决此类问题的最佳方案。
2025-08-31 22:35:12
421
原创 LeetCode 226. 翻转二叉树
本文介绍了如何翻转二叉树。核心思想是通过递归DFS交换每个节点的左右子树,时间复杂度O(n),空间复杂度O(h)。提供了C++实现代码,包括树节点定义、翻转函数和前序遍历验证。递归解法简洁高效,适合考察二叉树遍历和指针操作。该问题常用于算法面试,是理解递归思想的基础题目。
2025-08-29 22:39:57
440
原创 Godot4 CharacterBody2D
本文详细介绍Godot4中CharacterBody2D节点的使用,包括节点特性、核心属性、运动方法和常见问题。CharacterBody2D专为2D角色控制设计,内置物理碰撞检测和运动控制功能,适合平台跳跃等场景。关键属性包括质量、摩擦力和重力缩放,核心方法是move_and_slide()和地面检测。需搭配碰撞形状和显示节点使用,常见问题如穿模、跳跃异常可通过调整碰撞形状和速度参数解决。进阶技巧包括墙跳、冲刺功能实现,通过代码示例展示具体应用。
2025-08-29 21:54:03
2101
原创 Unreal Engine UGameState
UGameState是UE游戏框架中管理全局共享状态的核心类,继承自AGameStateBase,通过服务器主导的机制实现多人游戏数据同步。其核心特性包括:1)服务器拥有唯一修改权,通过Replicated属性自动同步至客户端;2)生命周期与游戏会话绑定,存储比分、回合进度等关键数据;3)支持C++与蓝图双开发模式。典型应用场景涵盖多人游戏分数同步(如MOBA)、全局倒计时管理及游戏阶段控制(准备/战斗/结算)。
2025-08-28 22:45:00
1357
原创 Unreal Engine UPrimitiveComponent
UPrimitiveComponent是Unreal Engine中所有可见和可碰撞组件的基类,继承自USceneComponent,负责渲染、碰撞及物理模拟。其子类包括UStaticMeshComponent(静态网格)、USkeletalMeshComponent(骨骼动画)和UShapeComponent(几何碰撞体)等。关键特性涵盖碰撞响应(Block/Overlap/Ignore)、物理模拟(刚体受力)、LOD优化及可见性控制。
2025-08-28 22:37:03
1239
原创 Unreal Engine UCharacterMovementComponent
Unreal Engine的UCharacterMovementComponent是专为角色移动设计的核心组件,继承自UPawnMovementComponent,提供行走、跳跃、飞行、游泳等多种移动模式。它具有完善的物理交互功能,支持地面检测、重力计算和坡度适应,并优化了网络同步机制。通过C++或蓝图可配置移动速度、跳跃力度等参数,适用于玩家角色和NPC。相比其他移动组件,它功能最全面,是人形角色移动的最佳选择。
2025-08-28 22:27:21
1396
原创 Unreal Engine URotatingMovementComponent
URotatingMovementComponent是Unreal Engine中用于实现持续旋转的组件,支持固定速率、局部/世界坐标系旋转及枢轴点设置。继承自UMovementComponent,即插即用,无需手动编写Tick逻辑。通过配置RotationRate和PivotTranslation可控制旋转速度与中心点,适用于风扇、转盘等场景。与UFloatingPawnMovement等组件相比,专精于自动化旋转,简化开发流程。
2025-08-28 22:24:51
1346
原创 Unreal Engine Cast
Unreal Engine中的Cast机制是一种安全的类型转换工具,用于检查对象类型并返回目标类型指针或nullptr。它支持多态继承,适用于Actor、组件和UI控件的转换。在蓝图中通过"Cast To"节点实现,在C++中使用Cast<目标类型>(源对象)语法。典型应用包括角色交互、组件获取和UI更新。相比直接转换更安全,但需注意避免对空指针转换和频繁调用。合理使用Cast能实现不同类型对象间的安全交互,是UE开发中的基础操作。
2025-08-28 22:22:38
1119
原创 LeetCode 104. 二叉树的最大深度
本文介绍了如何计算二叉树的最大深度,提供了递归(DFS)和迭代(BFS)两种解法。递归法通过比较左右子树深度取最大值加1实现,代码简洁高效。C++示例展示了递归实现,时间复杂度为O(n),空间复杂度取决于树高(O(h))。该解法是最优方案,兼顾了完整遍历和低开销。
2025-08-26 12:50:47
374
原创 LeetCode 76. 最小覆盖子串
本文介绍了如何解决最小窗口子串问题,即在字符串s中找到涵盖字符串t所有字符的最短子串。采用滑动窗口算法,通过双指针遍历字符串s,并利用哈希表记录字符频次来判断当前窗口是否满足条件。算法时间复杂度为O(n + m),空间复杂度为O(n + m)。C++实现代码展示了具体操作步骤,包括窗口扩展、收缩以及最小子串的更新。该方法是解决此类问题的经典最优解。
2025-08-25 22:14:45
492
原创 Unreal Engine Collision Responses
Unreal Engine的碰撞响应系统由碰撞通道和碰撞响应组成,用于控制游戏对象间的交互行为。碰撞通道(如Visibility、Camera、WorldStatic等)定义了检测类型,而碰撞响应(Block、Overlap、Ignore、Trigger)则决定了如何应对这些检测。通过灵活配置通道响应组合,可以实现精准的物理交互和事件触发(如子弹击中飞船、摄像机穿透墙壁等)。该系统支持全局预设和局部自定义,既能满足复杂交互需求,又能优化性能。配置方式包括蓝图可视化编辑和C++代码设置,开发者可以根据需求选择
2025-08-25 19:40:07
1619
原创 LeetCode 141. 环形链表
本文介绍如何检测链表是否存在环。使用快慢指针法(Floyd算法),慢指针每次移动一步,快指针移动两步。若两指针相遇则存在环,时间复杂度O(n),空间复杂度O(1)。伪代码和C++实现展示了算法逻辑,通过遍历链表即可高效判断环的存在。该方法在保证线性时间复杂度的同时仅需常数空间,适用于大规模链表检测。
2025-08-25 15:37:14
544
原创 Unreal Engine DrawDebugLine
Unreal Engine的DrawDebugLine函数是调试工具,用于在游戏世界中绘制临时直线,适合可视化碰撞检测、射线路径等开发任务。该函数支持自定义颜色、粗细和持续时间,仅开发版本可见。核心参数包括起点、终点、颜色和显示模式(瞬时或持久)。典型应用包括射线检测、向量显示和距离测量。需注意性能影响和坐标空间,避免发布版本残留。与DrawDebugPoint等函数相比,它更适合线性路径可视化,是开发阶段的重要调试手段。
2025-08-24 22:15:54
537
原创 Unreal Engine SetActorTickEnabled
SetActorTickEnabled 是 Unreal Engine 中控制 Actor 每帧更新(Tick)功能的核心函数,通过布尔参数动态开关 Tick 逻辑的执行。继承自 AActor 的类均可调用,支持运行时灵活控制,适用于性能优化(如关闭闲置角色的 Tick)或逻辑管理(战斗时启用检测)。需配合 Tick Interval、Tick Group 等参数配置,在 C++ 中通过 this->SetActorTickEnabled() 调用,蓝图中可通过节点直接操作。典型场景包括角色状
2025-08-24 22:11:30
718
原创 Unreal Engine AddMovementInput
Unreal Engine中的AddMovementInput方法用于实现角色横向移动,通过沿角色右方向向量添加输入实现平滑位移。该功能继承自APawn类,结合本地坐标系和可调节参数(如移动速度、输入缩放等)精确控制移动。开发者可在角色类或蓝图中调用该方法,适用于FPS侧移、赛车微调等场景。需注意参数配置和物理系统联动,常见问题包括速度异常或方向错误,可通过检查参数和启用Allow Strafe选项解决。该方法标准化了角色横向移动实现,配合乘数参数可扩展多样移动效果。
2025-08-24 22:10:31
698
原创 Unreal Engine UAudioComponent
UAudioComponent是Unreal Engine中处理音频播放的核心组件,支持加载、控制音效与音乐,具备3D音效空间化、音量/音调调节、循环播放等功能。继承自USceneComponent,可附加到Actor实现位置化音频。通过蓝图或C++配置,典型应用包括武器音效、环境声、UI提示等。需注意音频资源绑定、3D音效参数设置及播放状态控制,常与USoundWave、USoundCue等类配合使用。常见问题如无声需检查自动播放开关或Sound属性绑定。
2025-08-23 19:24:33
1380
原创 Unreal Engine USoundCue
USoundCue是Unreal Engine的音频逻辑容器类,通过节点系统组合多个SoundWave并添加效果控制。它支持随机播放、混合、调制等功能,适用于枪声、环境音等复杂音效场景。相比单一音频的USoundWave,USoundCue提供可视化节点编辑,可配置衰减、并发等参数,但需注意节点复杂度可能影响性能。开发者可通过SoundCue编辑器组合音频节点,在场景中通过AudioComponent或PlaySoundAtLocation(
2025-08-23 19:17:23
431
原创 Unreal Engine USoundWave
USoundWave是Unreal Engine中存储音频波形数据的核心资源类,继承自USoundBase。它支持WAV文件导入、3D空间定位和波形可视化,常用于背景音乐、音效等场景。与USoundCue不同,USoundWave专注单一音频播放,通常配合AudioComponent或Sound Cue使用。开发时需注意文件体积优化和多平台兼容性,建议通过Sound Cue管理音频逻辑。该组件在游戏中主要承担底层音频数据存储功能。
2025-08-23 19:16:42
494
原创 Unreal Engine USoundBase
Unreal Engine中的USoundBase是所有声音资源的基类,作为音频系统的抽象基础,需通过子类USoundWave(存储原始音频)或USoundCue(复杂音效逻辑)实现播放。支持关键配置如音量、循环、空间衰减等,通过UGameplayStatics或UAudioComponent调用,适用于背景音乐、UI音效、环境声等场景。开发者需注意性能优化和子类选择,避免直接使用基类播放。
2025-08-23 19:12:47
367
原创 Unreal Engine USoundClass
USoundClass是虚幻引擎中用于组织游戏音效层级的数据资产,支持父子分类和参数控制(音量/音调等)。其核心功能包括建立音效架构(如BGM、UI音效分类)、与USoundMix联动实现动态调整。开发者需注意合理分层(推荐BGM/SFX/Voice/UI基础分类)以避免后期维护困难,并配合SoundMix解决动态过渡问题。该组件通过层级继承机制简化全局音频管理,是游戏音频系统的关键模块。 (字数:148)
2025-08-23 19:11:46
352
原创 Unreal Engine Sound
Unreal Engine的声音系统核心类概览:USoundBase是所有声音资源的基类,其子类USoundWave处理原始音频数据,USoundCue提供节点化声音逻辑控制。关键辅助类包括USoundAttenuation(3D音效衰减)、USoundConcurrency(并发控制)、USoundClass(声音分类)和USoundMix(动态混音)。这些类共同构建了Unreal的声音管理系统,支持背景音乐、环境音效、逻辑组合音效等场景,通过资源管理、播放控制和混音调度实现丰富的音频体验。
2025-08-23 19:10:59
392
原创 Unreal Engine Audio
本文概述了Unreal Engine中Audio相关类的核心功能与应用场景。主要介绍了12个关键音频类,包括UAudioComponent、UAudioBus、USoundSubmix等,它们负责运行时音频播放、混音、捕获和效果处理。文章重点说明了这些类在音频播放、麦克风输入、混音路由、空间音频及UE5新特性MetaSound系统中的应用。核心要点包括:UAudioComponent是主要播放入口,Submix处理分组音频,AudioCapture支持录音功能,MetaSound作为UE5创新的节点化音频系
2025-08-23 19:10:09
528
原创 Unreal Engine USkeletalMeshComponent
USkeletalMeshComponent组件专用于渲染骨骼网格体并驱动动画系统,支持蒙皮动画、物理模拟和动态组件挂载。其关键特性包括动画蓝图控制、物理资产绑定、形态变形及动画蒙太奇播放。通过代码示例展示了网格设置、动画绑定等基础用法,并列举了角色动画、武器挂载等典型应用场景。作为Unreal动画系统的核心组件,它继承自USkinnedMeshComponent,能与物理系统深度交互,是实现角色动作、布娃娃效果等功能的基础组件。
2025-08-23 02:07:54
1167
原创 Unreal Engine UStaticMeshComponent
UStaticMeshComponent是UE用于渲染静态网格体的核心组件,继承自UPrimitiveComponent。它支持材质应用、碰撞检测、LOD优化和实例化渲染,能与光照系统完美集成。通过C++或蓝图均可配置,常用于场景搭建、交互对象及性能优化。其子类如UInstancedStaticMeshComponent进一步扩展了批量渲染功能,是关卡构建和性能优化的关键组件。
2025-08-22 23:14:51
1084
原创 Unreal Engine UPrimitiveComponent
UPrimitiveComponent是Unreal Engine中所有可见和可碰撞组件的基类,继承自USceneComponent,负责渲染、碰撞及物理模拟。其子类包括UStaticMeshComponent(静态网格)、USkeletalMeshComponent(骨骼动画)等。关键特性涵盖碰撞系统(Block/Overlap)、物理模拟(刚体/受力)、LOD优化及可见性控制。开发中通过配置CollisionEnabled、SimulatePhysics等属性实现交互逻辑,常用于静态物体、动态角
2025-08-22 23:14:05
925
原创 Unreal Engine USceneComponent
USceneComponent是虚幻引擎中所有具有空间变换功能的组件基类,提供三维空间定位与层级管理支持。作为场景树系统核心,它继承自UActorComponent,增加了Transform与层级关系功能。关键特性包括Transform支持、父子组件挂载系统、运行时组件附加/分离能力等。通过Relative/World变换参数和Mobility设置,开发者可以灵活控制组件位置关系。该组件广泛应用于构建Actor层级、相机/灯光系统等场景,是
2025-08-22 23:13:01
1207
原创 Unreal Engine UE_LOG
UE_LOG是虚幻引擎的核心日志宏,支持分级(Fatal/Error/Warning等)和分类输出,可记录到控制台、日志文件和调试器。通过DECLARE/DEFINE_LOG_CATEGORY自定义日志类别,结合格式化字符串输出变量信息。需注意:1) 发布版本应减少Verbose日志;2) 避免格式化类型错误;3) Fatal级会触发崩溃。相比屏幕调试消息(AddOnScreenDebugMessage),UE_LOG更适合持久化记录,但需在DefaultEngine.ini或命令行配置日
2025-08-22 23:11:54
1093
原创 Unreal Engine UProjectileMovementComponent
UProjectileMovementComponent 用于子弹、手雷、火箭和魔法弹等投射物的自动运动。支持初速度、最大速度、重力缩放、弹跳、摩擦及方向自动旋转。通过 Velocity 控制飞行方向,可绑定 OnProjectileStop 和 OnProjectileBounce 事件处理碰撞逻辑。适合所有“飞出去的物体”,简化发射、碰撞和飞行物理计算,实现快速可靠的抛射物行为。
2025-08-22 23:05:48
937
原创 Unreal Engine UFloatingPawnMovement
UFloatingPawnMovement 是 Pawn 的轻量级移动组件,提供无重力、加减速、碰撞滑移的悬浮式移动。典型用法是飞行器、自由相机或俯视射击,支持输入驱动、加速度/减速度、转向助推和平面约束。通过 AddMovementInput 驱动移动,配合 UpdatedComponent 实现碰撞滑动,可选约束到平面,蓝图/代码均可设置参数。适合快速调手感和简单 AI 移动,但不提供地面/跳跃逻辑。相比其他移动组件,它轻量易用,网络同步友好,但不适合带重力的角色移动。
2025-08-22 23:03:18
986
原创 Unreal Engine Simulate Physics
文章摘要: Unreal Engine中的Simulate Physics是组件(如UPrimitiveComponent)的物理模拟开关,启用后对象会受物理引擎控制,实现重力、碰撞和动力学效果。核心功能包括真实物理响应、网络同步,适用于布娃娃系统、抛射物和物理交互场景。通过代码或蓝图设置,可结合质量、阻尼等参数调整行为。与ProjectileMovementComponent等相比,它提供更真实的物理模拟,但需权衡性能与精度。典型应用于动态碎片、破坏效果及角色布娃娃状态。
2025-08-22 22:57:00
1098
空空如也
vs2019+vtk+cmake, 编译失败
2024-01-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅