1.递归函数中,注意局部变量每次赋值
int vis[maxn], n, ans;
vector<int>vec[maxn];
void dfs(int now, int deep)
{
int i, maxd = -1; //maxd每次赋值-1,和预期不一样
if (deep>maxd)
{
ans = now;
maxd = deep;
}
for (i = 0; i < vec[now].size(); i++)
{
dfs(vec[now][i], deep + 1);
}
}
2.注意输入的同时进行操作时,如果操作过程中break,注意变量的是否完成读取
for (j = 0; j < num; j++)
{
int come, k = 0;
cin >> come;
//.......
if (stk.size() == m + 1)
{
flag = 0;
break;
}
if (j == num - 1)
{
if (!stk.empty())
{
flag = 0;
break;
}
}
}
//如果没有下面的语句,数据读取可能不完全
int come;
for (; j < num-1; j++)
cin >> come;
3.很多次的if else嵌套可以用if,else if来代替
4.某个变量已经输入,但还是用的样例中的某数