我正在编写这段代码来优化问题发生的时间,这是一个dp问题
给出的字符串S为:574674546476
对于索引1: 从5到字符串末尾的偶数为7,因此索引1的结果为7。
对于索引2: 从7到字符串末尾的偶数为7,因此索引2的结果为7。
对于索引3: 从4到字符串末尾的偶数为7,因此索引3的结果为7。
对于索引3: 从6到字符串末尾的偶数为6,因此索引4的结果为6。
...
这是我尝试过的代码,但在此代码中显示了分段错误
#include <bits/stdc++.h>
using namespace std;
int main()
{
char str[10005];
int i;
cin >> str;
int n = strlen(str);
int arr[10005];
for (i = 0; i < n; i++) {
arr[i + 1] = str[i] - 48;
}
int tab[n + 1];
if (arr[n] % 2 == 0) {
tab[n] = 1;
}
else {
tab[n] = 0;
}
for (i = n - 1; i >= 1; i++) {
if (arr[i] % 2 == 0) {
tab[i] = tab[i + 1] + 1;
}
else {
tab[i] = tab[i + 1];
}
}
for (i = 1; i <= n; i++) {
cout << tab[i] << " ";
}
}
我希望输出应该是
7 7 7 6 5 5 4 4 3 2 1 1
但是当我输入574674546476
并想使用dp解决时,我编写了代码,它显示了分段错误。
答案 0 :(得分:1)
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Time of Day');
data.addColumn('timeofday', 'Time of Day');
data.addColumn('number', 'Emails Received');
data.addRows([
['eee',[8, 30, 45], 5],
['eee',[9, 0, 0], 10],
]);
var options = {
title: 'Total Emails Received Throughout the Day',
height: 450,
series: {0:{type: 'line'}}
};
var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
应该是
for(i=n-1;i>=1;i++){
这可以解释崩溃的原因,但是当人们提交具有竞争力的代码时,您还会遇到两个常见错误
这不是标准的C ++头文件
for(i=n-1;i>=1;i--){
在此代码中,您应该使用
#include<bits/stdc++.h>
这不是合法的C ++
#include <iostream>
因为在C ++数组中大小必须为编译时间常数,但是此处int tab[n+1];
是一个变量。您应该使用
n
和
#include <vector>
相反。