自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NFA晨曦的个人博客

一个啥都分享的博客

  • 博客(17)
  • 收藏
  • 关注

原创 力扣刷题日常(15-16)

这篇文章主要介绍了力扣第15题"三数之和"的解题思路。该题要求在给定整数数组中找到所有不重复的三元组,使其和为0。核心解法采用"排序+双指针"的方法,首先对数组排序,然后固定一个数转化为两数之和问题,使用双指针寻找匹配的另外两个数。文章详细说明了去重逻辑和处理流程,通过排序使时间复杂度优化到O(n²)。

2025-08-05 19:16:26 1217

原创 力扣刷题日常(13-14)

本文介绍了LeetCode刷题的第13题和第14题解决方案。第13题"罗马数字转整数"通过建立字符-数值映射表,采用从右向左遍历的方式,根据当前字符与右侧字符的大小关系决定加减操作,巧妙处理了特殊减法规则。第14题"最长公共前缀"通过纵向扫描字符数组,逐一比较每个字符串的相同位置字符,找到所有字符串共有的最长前缀。两题都运用了字典映射、循环比较等编程技巧,这些方法在游戏开发、UI布局等实际场景中有广泛应用。文章提供了清晰的解题思路和C#代码实现

2025-08-03 11:15:14 850

原创 力扣刷题日常(11-12)

本文介绍了力扣第11题"盛最多水的容器"的解法。题目要求找到两条垂直线使其与x轴构成的容器能装最多水。暴力解法时间复杂度O(n²)不可行,采用双指针法可将复杂度降至O(n)。核心思路是初始化左右指针,每次移动指向较短线的指针,以寻求可能增大容器高度的机会。这种贪心策略确保了每一步都指向最优解方向。文章包含代码实现、算法分析及练习题,重点讲解了双指针技巧和贪心算法的应用场景。

2025-08-02 20:55:53 1396

原创 力扣刷题日常(9-10)(待完善)

本文分享了力扣刷题中的两道题目解析。第9题"回文数"通过两种解法判断整数是否为回文:字符串转换法和数学反转法,后者通过反转一半数字避免了溢出问题。第10题"正则表达式匹配"则是困难级别的字符串匹配问题,支持'.'和'*'通配符。文章详细讲解了回文数问题的解题思路、代码实现和边界处理,并提供了相关练习题及答案,帮助理解数字反转中的溢出检查逻辑。这些题目考察了对数字操作和字符串模式匹配的核心算法能力。

2025-08-01 12:00:00 873

原创 力扣刷题日常(7-8)

本文介绍了力扣第7题"整数反转"的解题思路,重点讨论了如何处理整数溢出的关键问题。通过数学方法逐位取余和除法运算实现数字反转,并在构建新数字前预先检查是否超出32位有符号整数范围[-2^31,2^31-1]。文章详细解释了正负数的溢出判断条件,强调在C#等语言中整数溢出不会自动报错的特性,需要采用防御性编程策略提前预判。该解法时间复杂度为O(log10(n)),空间复杂度O(1),适用于处理32位整数反转问题。

2025-07-30 16:35:09 1635

原创 力扣刷题日常(5-6)

本文介绍了寻找最长回文子串的两种解法。暴力法通过枚举所有子串并检查回文性,时间复杂度为 O(n³),效率较低。更优的中心拓展法利用了回文的对称性,从每个可能的中心向两边扩展,时间复杂度降至 O(n²)。文中详细解释了中心拓展法的实现思路,包括处理奇偶长度回文、索引计算等关键点,并提供了 C# 代码实现及优化说明。该方法通过记录起止索引而非子串本身,有效减少了内存分配,是一种性能优化的典范。

2025-07-29 14:46:22 1397

原创 力扣刷题日常(3-4)

二分搜索的泛化应用: 二分搜索的核心是“在一个有序的集合中,通过不断排除一半的可能性来寻找目标这个“集合”不一定是一个存有具体数值的数组。它可以是答案的可能范围索引的范围,或者任何具有单调性的抽象概念。在这道题中,我们搜索的就不是一个值,而是一个满足特定条件的“分割点索引问题转化的思想: 直接解决一个问题可能很困难,但我们可以尝试将其转化为一个等价且更容易解决的问题。这道题的精髓就是将“寻找中位数”这个目标,转化为了“寻找一个完美的分割线一旦找到了这条线,中位数就自然浮现了。边界条件的严谨处理。

2025-07-28 12:45:42 1023

原创 力扣刷题日常(1-2)

文章摘要 本文分享了力扣刷题笔记,解析了两道经典题目: 两数之和:通过暴力解法(O(n²))和哈希表优化(O(n))两种方法,演示如何用空间换时间提升效率 两数相加:将链表数字相加问题比喻为"路标数字相加",需要处理链表遍历、进位计算等核心逻辑 两题均包含详细思路分析、复杂度评估和代码实现,重点讲解了哈希表ContainsKey方法的应用,展示了从暴力解到最优解的完整思考过程。

2025-07-27 22:40:33 1062

原创 标准C#自学日志1

本文记录了作者从Unity C#转向标准C#的学习历程。主要内容包括:1) C#基础概念介绍,如CLI设计、核心功能、与.Net框架的关系;2) 程序结构解析,包括Main方法、命名空间、基础数据类型和Console输出;3) 完整程序示例展示变量声明、输出和运算;4) 两个实践练习(自我介绍和简单计算器);5) 学习过程中遇到的问题总结。作者采用菜鸟教程和AI辅助学习,旨在为游戏开发实习做准备。文章结构清晰,包含代码示例和实操练习,适合有Unity基础的开发者入门标准C#。

2025-07-26 20:59:13 891

原创 Unity转UE5自学日志2

本文介绍了在UE5中实现按键交互式门的过程。首先创建包含门框和门扇的蓝图类,并调整门扇位置使其能正确旋转。然后通过文本渲染组件显示交互提示,利用碰撞检测和输入事件实现靠近显示提示功能。核心部分使用时间轴动画控制门的开关,通过布尔变量记录门的状态,并实现正反向播放时间轴来模拟开关门动画。文章对比了Unity和UE5的相关概念,如输入系统、变量引用、动画控制等,帮助开发者理解两者差异。最后通过蓝图节点连接实现了完整的交互逻辑,包括碰撞触发、输入检测和动画播放。

2025-07-21 13:58:56 1176

原创 Unity转UE5自学日志1

UE5自学第一天:创建交互式灯光触发器 本文记录了自学UE5的第一天实践过程。作者出于提升竞争力的考虑,决定自学UE5引擎。当天的学习目标是创建一个简单交互场景:当玩家进入特定区域时,灯光变色并显示提示消息。文章详细介绍了从项目创建到最终实现的完整步骤,包括UE5与Unity概念的对比、蓝图创建、组件添加和逻辑编写等关键环节。特别强调了UE5中Actor、Component和Blueprint等核心概念的使用方法,为初学者提供了清晰的实践指南。通过这个基础案例,作者初步掌握了UE5的可视化编程方式和开发流程

2025-07-19 09:20:59 860

原创 个人网站自主开发日志1

本文介绍了基于SpringBoot+Vue开发个人博客系统的技术方案与实践过程。作者采用前后端分离架构,后端使用SpringBoot提供RESTful API接口,前端使用Vue框架进行页面展示。文章详细阐述了环境搭建步骤,包括JDK17、Maven、Node.js等工具的配置,并解决了开发过程中遇到的UTF-8编码问题。通过创建简单的博客文章列表展示Demo,演示了后端控制器编写、数据模型定义以及前端项目创建的全过程。该方案具有职责清晰、技术栈灵活等优点,可作为初学者实现类似项目的参考。

2025-07-18 10:54:00 1064

原创 从 Rider 的一个建议谈起:深入理解 C# 模式匹配

C#模式匹配的优雅实践 本文通过实际开发案例深入探讨了C#模式匹配的核心价值和应用场景。从传统条件判断与模式匹配的哲学差异出发,系统介绍了类型模式、属性模式、逻辑模式等语法结构,并通过Unity开发中的典型用例展示了其优势:使用类型模式可一次性完成类型检查与变量赋值;属性模式能直观描述对象状态;switch表达式则成为复杂条件判断的理想载体。模式匹配不仅使代码更简洁安全,其声明式语法还能显著提升可读性,让代码意图更贴近自然语言表达,是提升C#代码质量的利器。

2025-07-15 08:52:43 261

原创 从 Rider 的一条建议谈起:深入理解 C# 表达式体成员

本文介绍了 Rider 编辑器提示的"使用表达式体"建议,解析了 C# 6.0 引入的表达式体成员特性(Expression-bodied Members)。这种语法糖允许用更简洁的 => 符号替代传统代码块,适用于方法、属性、构造函数等场景。文章通过代码示例对比了传统写法和表达式体写法,并指出其适用边界:仅适用于单一表达式,不能包含复杂流程控制。合理使用表达式体成员能使代码更紧凑清晰,提升可维护性,但需根据实际情况选择最佳表达方式。

2025-07-15 08:49:45 623

原创 文件编码问题可能导致的、其他非常隐蔽的异常和bug

UTF-8 BOM字符在软件开发中可能引发多种隐蔽问题,包括脚本编译错误、配置文件解析失败、网络通信异常以及跨平台脚本执行问题。这些问题通常表现为难以诊断的错误,因为BOM字符不可见且错误信息往往指向表层现象而非编码问题。防范措施包括:统一团队开发环境配置为UTF-8无BOM格式、使用.gitattributes强制编码规范、避免使用可能产生编码问题的简单编辑器,以及在遇到"灵异错误"时将编码检查作为标准排查步骤。这些做法可以有效减少因文件编码导致的开发问题。

2025-07-15 08:47:00 394

原创 在 Unity 中构建基于 log4net 的生产级日志系统:从实现到疑难问题排查

本文介绍了在Unity 2023中构建生产级日志系统的完整方案。通过集成log4net框架实现日志分级、持久化存储等功能,取代功能单一的Debug.Log。主要内容包括:1) 系统设计目标与log4net优势;2) 详细实现步骤:导入DLL、创建配置文件、封装API类;3) 关键技巧如UTF-8编码配置、编辑器/发布版差异化处理;4) 通过UnityLogBridge捕获引擎原生日志。特别针对"日志不生效"等疑难问题提供解决方案,最终实现兼具高性能与易用性的日志系统。

2025-07-15 08:44:42 998

原创 Unity 对象生存期的隐式检查

Unity对象生存期检查机制解析 本文深入剖析了Unity中对象生存期的特殊检查机制。Unity对象由C#包装器和C++引擎对象组成,Destroy()仅标记C++对象为待销毁,导致出现C#对象存在而C++对象失效的中间状态。Unity重载了==操作符,在null检查时会隐式查询C++层对象状态。Rider对此提示既出于性能考量(跨层检查有开销),也提醒开发者注意Unity特有行为。文章建议继续使用==null或布尔简写确保安全,并探讨了MissingReferenceException与对象池等优化

2025-07-15 08:40:50 1383 1

空空如也

空空如也

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

TA关注的人

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