作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
系统说:我的代码超时了。有没有捷径我的代码?
我正在使用 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/
我是一名优秀的程序员,十分优秀!