今天做了vivo的笔试,第三题就是链表合并问题,但是我不会输入!!!因为输入带了换行符,亏大了。情景再现:先输入一个非负数n,表示有n个链表。接下来输入n行,每行有若干个数字,中间用空格隔开,表示每一个链表。输出为按顺序合并后的链表。正确的输入方法:
int main()
{
int n;
cin >> n;
vector<vector<int>> vvi;
for (int i = 0; i < n; ++i) {
vector<int> vec;
int num;
do {
cin >> num;
vec.push_back(num);
} while (getchar() != 'n');
vvi.push_back(vec);
cin.sync(); //输入同步
}
for (auto &a : vvi)
{
for (auto b : a)
cout << b << " ";
cout << endl;
}
return 0;
}
ps:vivo测试的第二题也有点难,是leetcode887 原题,知乎也有解答
如何用最坏情况最少的次数测鸡蛋恰好会在哪一层扔碎?www.zhihu.com