- 博客(10)
- 收藏
- 关注
原创 几种背包问题的总结(Acwing学习)
本文系统总结了四种背包问题的统一模型与解法差异。所有背包问题本质都是在容量限制下选择物品使价值最大化,区别仅在于物品可选次数:01背包(选1次)、完全背包(无限次)、多重背包(≤s次)和分组背包(每组选1个)。核心在于状态转移方程f[j]=max(f[j],f[j-v[i]]+w[i])中j的遍历方向(正序/倒序)决定是否可重复选。01背包倒序防重复,完全背包正序允许多选,多重背包通过二进制拆分转为01背包,分组背包需三层循环控制每组选1个。理解"物品可选次数"是解决背包问题的关键。
2026-04-18 16:52:26
342
原创 表达式求值的几种情况
本文介绍了二叉树与表达式的关系,以及三种表达式(中缀、前缀、后缀)的特点和计算方法。通过二叉树可以直观理解表达式的运算顺序:运算符为父节点,数字为叶子节点。中缀表达式需要双栈处理优先级和括号,较为复杂;后缀表达式只需单栈,从左往右扫描;前缀表达式也只需单栈,但从右往左扫描。文章还提供了对应的C++代码实现,并总结了三种表达式的特点、处理方法和扫描方向。最后列出常用头文件及其功能,为编程实践提供参考。
2026-03-29 11:33:35
453
原创 表达式求值的几种情况
本文介绍了三种表达式(前缀、中缀、后缀)的表示方法及其计算方法。通过二叉树结构解释了运算符与数字的关系,并详细说明了中缀表达式求值中双栈(数字栈和运算符栈)的应用逻辑。文章还对比了三种表达式的特点:中缀表达式需要考虑优先级和括号,使用双栈从左往右扫描;后缀和前缀表达式则无需考虑优先级,分别使用单栈从左往右和从右往左扫描即可。最后提供了C++实现代码示例,帮助理解不同表达式的计算过程。
2026-03-29 11:29:40
374
原创 代码随想录④232用栈模拟队列、225用队列模拟栈、20有效的括号
学习了两三小时的队列和栈也是对C语言以及CPP中的这类型数据结构有了更直观的理解,栈可以模拟队列,队列也可以模拟栈,同时,栈也好适合做匹配和消除的题目!!!push\pop
2025-12-27 20:29:14
788
原创 代码随想录③:459重复的子串、字符串的部分学习心得
LeetCode459重复子串以及把字符串部分都回顾了以下的一点点点心得,今天学了大概一个半多小时,坚持!
2025-12-26 21:09:17
688
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅