为什么这段代码给出运行时错误
why does this code gives runtime error?
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
sort(nums1.begin(),nums1.end());
sort(nums2.begin(),nums2.end());
vector<int> a;
int i=0,j=0,k=0;
while(i<nums1.size()&&j<nums2.size())
{
if(nums1[i]>nums2[j])
{
j++;
}
else if(nums1[i]<nums2[j])
{
i++;
}
else
{
if(a.empty() || a.back() != nums1[i])
{
a[k]=nums1[i];
}
i++;
j++;
k++;
}
}
return a;
}
};
a
被声明为空向量,因此除非a
中有任何元素,否则不能访问a
的元素。你想要
a.push_back(nums[i]);
不是 a[k] = nums1[i]; //a is declared as empty vector so you have to push elements to it.
或
你可以做
vector<int> a(num1.size());
不是vector<int> a;
问题是你通过a[k]访问vector。
向量a是空向量,不能用a[k]访问。
需要使用 a.push_back (num[我]);
或
声明向量a(10);然后用[k]访问
相关文章:
- 为什么此代码存在运行时错误?
- 蝴蝶代码 88.合并排序数组 c++ 运行时错误
- 在Hackerearth上获取运行时错误(SIGSEGV),无法找出代码中的问题
- 为什么我在此代码中收到运行时错误
- 我的代码上的运行时错误 sigsegv
- 矢量的 c++ 代码中的运行时错误
- C++代码在 for 循环的条件下给出运行时错误,而如果它被具有相同意义的代码替换,则编译正确
- 我的代码中出现运行时错误的可能原因是什么?
- 我在代码中收到一个运行时错误,该错误如何通过修改最多一个元素来查找数组是否可以变得不减少
- 在计算机级别,应用程序以二进制方式运行,然后当发生运行时错误时,它如何呈现回错误代码
- .NET CORE 2 DLL引用带有C 代码运行时错误
- 为什么我的代码给出运行时错误超时
- 为什么我的程序在删除以下代码中的注释后会出现运行时错误?
- 薄板样条形状转换运行时错误 [使用代码 -1073741819 退出]
- C 代码的运行时错误(基于指针)
- 代码中的运行时错误,用于求解最小的偶数可整除
- 为什么我的代码导致运行时错误
- 为什么矢量上的这段代码会给出运行时错误
- 涉及向量的初学者代码,SEIGSEV运行时错误
- 为什么这段代码会产生运行时错误