- 博客(9)
- 收藏
- 关注
原创 Effective C++ Item 11 赋值运算符重载中的自赋值问题以及Copy and Swap技术
本文讨论了C++赋值运算符重载中的自赋值问题及其解决方案。通过实例分析自赋值的潜在场景(如数组访问、指针操作、基类引用派生类等),指出传统实现方式可能导致的资源泄漏和异常安全问题。重点介绍了Copy and Swap技术,通过创建临时副本并交换数据的方式,同时解决了自赋值和异常安全两大难题。现代C++推荐使用按值传参的Copy and Swap方案,该方案简洁优雅,利用语言特性自动处理拷贝构造和资源清理,成为当前最佳实践之一。
2025-08-28 18:03:58
368
原创 三数之和 双指针算法
leetcode例题 15给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。**注意:**答案中不可以包含重复的三元组。**输入:**nums = [-1,0,1,2,-1,-4]不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。**输入:**nums = [0,1,1][]**解释:**唯一可能的三元组和不为 0。
2025-03-03 23:07:32
505
原创 二叉树最近共同祖先
二叉树的最近共同祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(**输入:**root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1**输出:**3**解释:**节点5和节点1的最近公共祖先是节点3。
2025-02-16 18:11:32
643
原创 二叉树的层序遍历
给你二叉树的根节点root,返回其节点值的。(即逐层地,从左到右访问所有节点)。**输入:**root = [3,9,20,null,null,15,7]**输入:**root = [1][[1]]**输入:**root = [][][0, 2000]
2025-02-16 15:34:14
434
原创 位运算例题:只出现一次的数字I II III
提示给你一个整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。**输入:**nums = [2,2,1]**输出:**1**输入:**nums = [4,1,2,1,2]**输出:**4**输入:**nums = [1]**输出:**1。
2025-02-05 12:14:38
1179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1