求助,两种写法为什么差别这么大
  • 板块学术版
  • 楼主Benzenesir
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/17 22:56
  • 上次更新2023/10/27 07:03:45
查看原帖
求助,两种写法为什么差别这么大
258178
Benzenesir楼主2022/10/17 22:56

在写小熊的果篮这道题的时候,我理所应当地想到了一个链表套链表的写法,但写完后,T了四个点

大样例跑了足足120s

从讨论去找到了一种写法,和我原来的类似,但一共才跑了180ms,但为什么时间效率会差这么多啊

//快的写法
for(auto &it: lt){//取地址可以修改 
			if(!head)printf(" ");
			printf("%d",(it.front().data));
			head=0;
			it.pop_front();
			if(!it.empty()){
				if(lt2.empty()||lt2.back().front().type != it.front().type){
					lt2.emplace_back(move(it));
				}
				else {
					lt2.back().splice(lt2.back().end(),move(it));
				}
			}
		}

//我的写法
//		for(auto &it:lt){
//			if(it.empty())continue;
//			if(lt2.empty()) lt2.emplace_back(move(it));
//			else {
//				if(it.front().type==lt2.back().front().type)
//					//lt2.back().l.insert(lt2.back().l.end(),it->l.begin(),it->l.end());
//					lt2.back().splice(lt2.back().end(),move(it));
//				else lt2.emplace_back(it);
//			}
//		}

完整代码:
我的
std

求dalao指点

2022/10/17 22:56
加载中...