gpt4 book ai didi

c++ - 超过时限

转载 作者:行者123 更新时间:2023-11-30 03:33:43 26 4
gpt4 key购买 nike

系统说:我的代码超时了。有没有捷径我的代码?
我正在使用 vector 将钉子保存到图形中。

输入:e,n
输出:checkcase=1 => 检查 u 是否与 i 相邻
checkcase=2 => 找到你周围的钉子

#include <iostream>
#include <vector>
#include <list>
#include <string>

using namespace std;

int main()
{
int e, n;
string u, i;
//using vectors
vector<string> graph;
//use list
list<string>listElementsInCase2;

cin >> e;
cin >> n;
//loop for e
for (long index = 0; index < e; index++)
{
cin>>u>> i;
//add u to graph
graph.push_back(u);
//add i to graph
graph.push_back(i);
}
//Option
int checkCase;
long index;
//loop for n
while(sizeof(n))
{
cin >> checkCase;

if (checkCase == 1)
{
cin >> u >> i;

for (index = 0; index < 2 * e; index += 2)
{ //Check u adjacent ? i
if ((graph.at(index) == u) && (graph.at(index + 1) == i))
{
cout << "TRUE" << endl;
break;
}
}

if (index == 2 * e)
cout << "FALSE" << endl;
}
//checkCase=2
if (checkCase == 2)
{
cin >> u;

for (long index = 0; index < 2 * e; index += 2)
{
if (graph.at(index) == u)
listElementsInCase2.push_back(graph.at(index + 1));
}
// return 0
if (listElementsInCase2.empty() == true)
cout << "0";
else
{
while (0 < listElementsInCase2.size())
{ //find nails that around u
cout << listElementsInCase2.front();
listElementsInCase2.pop_front();
cout << " ";
}
}

cout << endl;
}

n--;
}
}
//end

最佳答案

您的代码中似乎有一个无限循环。

您的声明while(sizeof(n))永远不会停止重复循环,因为 sizeof(n) 总是返回整数类型的字节大小,它总是一个正数,因此总是计算为真。

您的代码的一个快捷方式是将 while 循环替换为实际在某个点结束的 for 或 while 循环。另外 sizeof 可能不是您想要的功能。

for(int i=0; i<n; i++){可能正是您正在寻找的。

关于c++ - 超过时限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42624212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com