Python与C++对溢出?处理的不同让我忽略了一个错误

Python C++ 语言差异 数组溢出 算法 01背包问题

前言

第一次实现01背包问题的解,在python上先写了实现,然后用C++再写一遍。发现几乎一样的代码,python上能很好工作,而C++中虽然能够正常编译,得到的结果却并不正常。
PS:我用的是C-Free,编译0警告0错误
问题出在以下语句

#python
array = [4, 5]
#array[-1]:5
//cpp
int *array = new int[2];
array[0] = 4; array[1] = 5;
//array[-1]:overflow

犯下的错误

  • 01背包问题解空间的大小是物品数*(重量数+1),而我漏了+1,实际上遗漏了重量为0的情况,才有了溢出的一幕
  • 由于python中array[-1]指数组最后一个数的值,没有详细检查数据,所以压根没有发现出现了下标为-1的情况

还是太年轻啊

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容