Coursera :自动评分器的未知信号 11
Coursera : unknown signal 11 by autograder
我有这段代码用于最长的常见子序列问题(我是通过动态规划方法完成的(
但是我被 Coursera 自动评分器错误(失败案例 #6/37:未知信号 11(使用时间:0.00/1.00,使用的内存:9166848/536870912.((
#include 使用命名空间标准; int max(int a,int b( { 返回 a>b?a:b; } int common_sub_sequence(vector&arr1, vector &arr2, int n, int m( { int ch[m + 1][n + 1]={0}; for (int i = 0; i <= n; i++( { for (int j = 0; j <= m; j++( { if (i == 0 || j == 0( { ch[i][j] = 0; } 否则如果 (arr1[i - 1] == arr2[j - 1]( { ch[i][j] = ch[i - 1][j - 1] + 1; } 还 { ch[i][j] = max(ch[i - 1][j], ch[i][j - 1](; } } } 返回 ch[n][m]; } int main(( { 整数 n=0, m=0;>>; vector arr1(n,0(; for (int i = 0; i <n;>> arr1[i]; } cin>> m; vector arr2(m,0(; for (int j = 0; j <m;>> arr2[j]; } cout <<common_sub_sequence( arr1 , arr2, n, m( <<""; 返回 0; }
如何删除该错误???
有两个问题可能导致未定义的行为;
首先,你创建一个大小为ch[m+1][n+1]
的数组,但外部循环是for (i=0; i<=n; i++)
,访问ch[i][j]
。大小为m+1
,但您迭代直到i<=n
(注意n-m- 差异(。所以应该是
int ch[n+1][m+1]`
其次,创建一个可变长度数组作为局部变量。如果完全支持,它将在"堆栈"上创建,并且可能会超过m和n的大值的堆栈限制。你可以用
std::vector<std::vector<int> > ch(n+1, std::vector<int>(m+1));
相关文章:
- Qt VTK交互风格的信号到小部件
- 继承期间显示未知行为的子类
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 输入中的字符串数未知(以字母表示)
- 如何在没有信号的情况下从C++执行QML插槽
- 具有未知值时的时间复杂性
- 线程之间的布尔停止信号
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 链表中写入访问冲突的未知原因
- 正在生成未知类实例
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 有可能在信号处理程序中设置promise吗
- 读取文件时运行时的未知行为
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- Coursera :自动评分器的未知信号 11
- Coursera自动评分器给了我未知信号11
- 代码在我的系统中运行良好,但 coursera 自动评分器给了我未知的信号
- 连接来自未知类的成员函数以增强信号