vector={100,400,500,700};
map<int,int> 里面有数据 <1,50>,<2,70>,<4,450>,map的第一个字段表示这个第二个字段的数据希望插入vector的指定位置。
要求O(N)时间复杂度
直接往vector里insert会导致vector后面的数据移动,时间复杂度是O(N*M);有没有其他方法。
vector里面有N个元素,map里面有M个元素,先new 一个N+M个元素的vector。
遍历map m,依次把map里面的值和vector old里的值填入新的vector res
int start=1;
int oldid=0;
for(auto it:m){
if(it.first!=start){
res[start]=old[oldid];
oldid++;
}else{
res[start]=it.second;
}
start++;
}