我实现了一个algorithm
,它打印所有正整数解方程a^3 + b^3 = c^3 + d^3
其中a,b,c,d是介于1和1000之间的整数。 为此,我使用hash table
将complexity
删除为O(N2)
。 H = c^3 + d^3
当我的哈希表超过一定的大小时,为什么会出现核心转储错误?
下面是我用(整数对列表)的hash table
:
int n = 10;
int m = pow(n,3)+pow(n,3);
list< pair<int,int> > hashTable[m+1]; //(*) Core Dump here if n>50. Why?
我的代码正常时Ñ< = 50。但我无法运行我的algorithm
,因为n> 50。所以,我无法解决n = 1000的问题。我在行(*)中获得核心转储。你能解释为什么会发生这种情况,并帮助我更好地实施我的hash table
?
谢谢你的时间!
这是写什么语言? – ItamarG3