此代码在数组声明期间产生分段错误.我很困惑为什么会这样.我故意选择2000000000作为值,因为它低于2 ^ 31并且可以适合整数变量.
int main()
{
int nums_size = 2000000000;
int nums[nums_size];
int i;
for(i = 0; i < nums_size; i++) {
nums[i] = i;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 给定n个金条,找到适合容量W的金的最大重量
第一行包含背包的容量W和金条的数量n.下一行包含n个整数
适合容量为W的背包的最大黄金重量.
1 <= W <= 10000; 1 <= n <= 300; 0 <= w0,w1,w2,...,w(n-1)<= 100000
#include <iostream>
#include <vector>
using std::vector;
int optimal_weight(int W, vector<int> w) {
int n = w.size() + 1;
int wt = W + 1;
int array [n][wt];
int val = 0;
for(int i = 0; i < wt; i++) array [0][i] = 0;
for(int i = 0; i < n; i++) array …Run Code Online (Sandbox Code Playgroud) c++ arrays algorithm dynamic-programming multidimensional-array