- 博客(3)
- 收藏
- 关注
原创 转换成小写字母
C++ 标准库提供了 tolower() 函数(定义在 <cctype> 头文件中),专门用于单个字符的大小写转换,无需手动计算 ASCII 码差值,简洁又不易出错。如果不允许使用 tolower(),我们可以利用 ASCII 码的规律手动转换:大写字母与对应小写字母的 ASCII 码差值为 32(即 'a' - 'A' = 32)。这种方式的核心是利用字符的 ASCII 码特性,适用于所有基于 ASCII 编码的场景,兼容性同样出色,且逻辑更直观。二、解题思路:利用库函数 + 遍历,高效完成转换。
2025-12-20 18:40:22
820
原创 两数之和 暴力解法
暴力解法是两数之和最基础的解法,优点是思路简单、代码易实现,适合算法入门者理解 “遍历 + 匹配” 的核心思想;缺点是时间效率较低,当数组规模较大(如 n>10⁴)时,运行时间会显著增加。后续还可以优化为哈希表解法(时间复杂度 O (n)),感兴趣的同学可以继续深入研究。刷题的核心不是记住答案,而是理解每一种解法的思路和适用场景,逐步培养算法思维。
2025-12-17 22:54:36
347
原创 数据结构与算法关于0-1背包的理解
一个背包,最大容量为C;n个物品,每个物品有两个属性:重量w[i]和价值v[i]i从 0 到 n-1)。要求:选择若干物品装入背包,使得总重量不超过 C,且总价值最大。设dp[i][j]表示前i个物品,在背包容量为j时的最大价值。设dp[j]表示背包容量为j时的最大价值。0-1 背包的本质是通过动态规划记录子问题最优解,避免暴力枚举的指数级复杂度(暴力复杂度O(2n),DP 复杂度O(nC))。空间优化后的一维 DP 更实用,是解决此类问题的核心模板。
2025-12-14 23:56:14
446
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅