- 用bfs注意数据范围,当数字超过数字范围或者到达不可能有答案的状态时就不要加进队列里了。
- 不要重复去创建数组,当每次循环要用到新数组时可以覆盖原来的数组,数组的创建比赋值耗时很多。特别是vector的创建特别耗时,普通数组的创建用时还好。
对于vector,使用copy(a.begin(),a.end(),b.begin())将a数组的所有值赋给b数组;或者for循环赋值
对于普通数组,使用memcpy(b,a,sizeof(b))将a数组的所有值赋值给b数组,使用memset(b,0,sizeof(b))将b数组的所有值赋值成0,第二个参数为要赋的常数 - int arr[100]={1},只有第一个元素是1,其他元素是0,要想全初始化为1先定义数组然后memset
kuanbin专题一简单搜索感悟:
最新推荐文章于 2026-06-23 22:42:23 发布
本文探讨了在使用BFS算法时应注意的数据范围限制,避免加入无效状态至队列中。同时,介绍了如何通过覆盖原有数组而非重新创建来提高效率,讨论了不同数组复制方法的性能差异。

2719

被折叠的 条评论
为什么被折叠?



