经常犯的错误之递归写不全return
2024-10-08 11:03:11
在写递归函数的时候,只在最后一层写return,中间的过程没有return,导致结果的丢失。
举个例子
LL query(LL i, LL k)
{
if (sum[i] < k)
{
return -;
} if (con[i].l == con[i].r)
{
return con[i].l;
} if (k <= sum[i << ])
{
query(i << , k);
}
else
{
query(i << | , k - sum[i << ]);
}
}
第15行应该是" return query(i << 1, k);",19行也应当加return语句。 如果没有写,那么 由于在倒数第二层没有把最后一层的结果返回给倒数第三层,从倒数第三层之后的就丢失了正确的答案。
!!!记住写return啊 !!!
最新文章
- BPM公文管理解决方案分享
- WebService -- Java 实现之 CXF (WebService 服务器端接口)
- error-2016-4-20
- .net 批量打印可实现方案
- java学习:Hibernate入门
- 词汇小助手V3.0发布了——不只是一个查单词的软件
- 【转】java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
- SQL Server dbcc shrinkfile 不起作用
- 用extundelete恢复rm -rf删的文件
- Jenkins 发布后自动创建git tag
- 借助AMD来解决HTML5游戏开发中的痛点
- C语言第二次博客作业——分支结构
- Vue番外篇 -- vue-router浅析原理
- css3实现旋转表
- day5_函数返回值
- JavaScript之循环
- VS2012里面使用EF框架的增删改查和分页的方法
- OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
- 全面的framebuffer详解二
- Vmware linux 无法上网