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的情况

还是太年轻啊

    原文作者:御史神风
    原文地址: https://www.jianshu.com/p/8e2a8a627a8a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞