C++ 为SPOJ smpseq获取WA
以下是问题的链接: 我每次都得到WA,尽管代码适用于我尝试过的所有测试用例 请给我一个提示。我是这方面的初学者 这是我的密码C++ 为SPOJ smpseq获取WA,c++,C++,以下是问题的链接: 我每次都得到WA,尽管代码适用于我尝试过的所有测试用例 请给我一个提示。我是这方面的初学者 这是我的密码 #include<iostream> using namespace std; int main() { int n, m; bool check; int cnt=0; cin >> n; int s[n]; int c[n]; for(int i = 0; i < n; i++)
#include<iostream>
using namespace std;
int main()
{
int n, m;
bool check;
int cnt=0;
cin >> n;
int s[n];
int c[n];
for(int i = 0; i < n; i++)
cin >> s[i];
cin >> m;
int q[m];
for(int i = 0; i < m; i++)
cin >> q[i];
for(int i = 0; i < n; i++)
{
check = false;
int j = 0;
while(q[j] <= s[i])
{
if(q[j] == s[i])
check = true;
j++;
}
if(check == false)
{
c[cnt] = s[i];
cnt++;
}
}
for(int i = 0; i < cnt; i++)
cout << c[i] << " ";
return 0;
}
#包括
使用名称空间std;
int main()
{
int n,m;
布尔检查;
int-cnt=0;
cin>>n;
int s[n];
int c[n];
对于(int i=0;i>s[i];
cin>>m;
int q[m];
for(int i=0;i>q[i];
对于(int i=0;i 当(q[j]编码失败时,因为您没有检查j
的值是否小于m
,您只需继续增加它,直到达到q[j]aa
和b>=a
的值为止(S是排序序列),因此b>aa
也是如此。因此,您不需要在每次迭代开始时初始化j=0
,这将节省浪费的计算。您只需要在main
开始时初始化j=0
此外,您不需要将结果保存在新数组中,当遇到check==false
时,您可以简单地将其打印出来,这样可以节省一些空间。打印额外的空间而不打印换行符可能不适合在线评委。@MikeCAT额外的空间在哪里?我应该在哪里打印换行符?我不认为需要。我得到的输出正如问题中所示
while(j < m && q[j] <= s[i])