- 博客(11)
- 收藏
- 关注
原创 C++移动语义
本文介绍了C++中的拷贝机制、左右值概念及相关技术要点。主要内容包括:1) 浅拷贝与深拷贝的区别及实现方式;2) 左值与右值的定义及特点;3) 左值引用和右值引用的使用场景;4) std::move()的作用及注意事项;5) 纯右值与将亡值的区分;6) 函数参数传递中的拷贝与移动构造触发情况;7) 引用折叠规则;8) 万能引用的定义和使用条件;9) std::forward实现完美转发的原理。这些概念构成了现代C++移动语义和完美转发的基础机制。
2026-04-01 10:54:40
375
原创 github+PicGo极简图床搭建
本文介绍了使用GitHub+PicGo+Typora搭建图床的完整流程:1)创建GitHub公开仓库并生成access token;2)配置PicGo连接GitHub图床,包括设置仓库信息、token和代理;3)在Typora中配置图片自动上传功能;4)支持批量上传已有文章的本地图片。注意事项包括token需及时保存、代理设置建议以及免费CDN可能存在的兼容性问题。该方案可实现Markdown文档图片的自动化管理。
2026-03-30 10:06:50
240
原创 力扣3223.操作后字符串的最短长度
本文提出了一种简单思维题解法,通过统计字母出现次数来最小化字符串长度。当任一字母出现3次时,可删除2个相同字母。算法使用大小为26的数组维护字母计数,初始答案设为字符串长度,每当某字母计数达到3时,答案减2并将该字母计数重置为1。该方法时间复杂度为O(n),空间复杂度O(1)。代码示例展示了如何用C++实现该算法。
2026-03-18 12:26:21
27
原创 SCAU算法设计和分析 —— 贪心算法
本文介绍了三个贪心算法问题的解决方案:最优自然数分解问题、整除15问题和区间相交问题。对于最优自然数分解问题,采用拆分成连续自然数并调整的策略,时间复杂度为O(n)。整除15问题通过数字统计和条件判断处理,确保结果能被15整除。区间相交问题则按右边界排序后统计不重叠区间数量,时间复杂度为O(nlogn)。每个问题都提供了对应的C++代码实现和简要分析。
2026-03-17 13:54:49
269
原创 力扣3159.查询数组中元素出现的位置
摘要:本文提出了一种高效查找数组中元素出现位置的算法。通过双指针技术在原数组上直接维护目标元素x的所有出现位置,将空间复杂度优化至O(1)。查询时只需检查查询值是否小于x的出现次数cnt,即可在O(1)时间内返回结果。该算法时间复杂度为O(n+q),空间复杂度为O(q),其中n为数组长度,q为查询次数。实现代码展示了如何利用原数组前cnt个位置存储x的所有下标,有效节省了额外空间开销。
2026-03-17 10:55:19
27
原创 SCAU算法设计与分析 —— 动态规划
By 三石吖 2026.2NNN最大只有1e41e41e4,显然可以考虑O(n2)O(n^2)O(n2)的做法用dp[i]dp[i]dp[i]表示以第iii个元素结尾的最大子段和递推:考虑每一个小于iii的位置jjj,如果a[j]<a[i]a[j]<a[i]a[j]<a[i],说明发现了一个上升段,转移方程为:dp[i]=max(dp[i],dp[j]+1)dp[i]=max(dp[i],dp[j]+1)dp[i]=max(dp[i],dp[j]+1)18708 最大子段和考虑用dp[i]dp[i]dp
2026-03-16 14:56:21
396
原创 SCAU算法设计与分析 —— 递归与分治
本文介绍了三个算法问题的解决方案:1) 使用递归解决有重复元素的排列问题,通过交换元素和去重检查生成排列;2) 采用排序和双指针法高效求解众数问题;3) 运用动态规划计算将礼物分配到盒子的方法数,并通过前缀和优化提升效率。主要算法包括递归回溯、排序扫描和动态规划。
2026-03-15 16:20:58
364
原创 SCAU算法设计与分析 —— 一般方法
本文介绍了四个算法问题的解决方案:1) 使用单调栈求相邻最大矩形面积,时间复杂度O(n);2) 计算前缀平均值,直接累加求均值;3) 通过枚举求解强盗分赃问题,满足特定数学条件;4) 将循环小数转换为分数表达式,处理整数部分和循环节。针对不同问题特点,分别采用单调栈、数学推导和分数转换等方法,提供C++实现代码并分析时间复杂度。
2026-03-15 16:14:18
391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅