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的情况
还是太年轻啊