当前位置:网站首页>LeetCode 321. Maximum number of splices***
LeetCode 321. Maximum number of splices***
2022-06-10 17:51:00 【Evening rain forest bell】
Specific ideas :
The following points are involved :
- How to use the monotone stack to find the front k It's worth ;
- String merging problem ;
Specific code :
class Solution {
public:
vector<int> maxNumber(vector<int>& nums1, vector<int>& nums2, int k) {
int m=nums1.size();
int n=nums2.size();
int start=max(0,k-n),end=min(k,m);// That is, the sum is k situation ,start How many positions can there be ;
vector<int> cur(k,0);
for(int i=start;i<=end;i++){
vector<int> q1=pick(nums1, i);
vector<int> q2=pick(nums2,k-i);
vector<int> ret=merage_(q1, q2);
if(cmp(ret, cur,0,0))
cur=ret;
}
return cur;
}
vector<int> pick(vector<int>& vec,int k){
vector<int> st;
int index=0;
int remain=vec.size()-k;// How many elements need to be removed ;
for(int i=0;i<vec.size();i++){
while(!st.empty()&&vec[i]>*st.rbegin()&&remain>0){
remain--;
st.pop_back();
index--;
}
if(index<k){
st.push_back(vec[i]);
index++;
}else{
remain--;
}
}
return st;
}
vector<int> merage_(vector<int>& a,vector<int>& b){
vector<int>ret;
for(int i1=0,i2=0;i1!=a.size()||i2!=b.size();){
if(i1==a.size()){
ret.push_back(b[i2++]);
continue;
}
if(i2==b.size()){
ret.push_back(a[i1++]);
continue;
}
if(a[i1]>b[i2]){
ret.push_back(a[i1++]);
}else if(a[i1]<b[i2]){
ret.push_back(b[i2++]);
}else{
int que=cmp(a,b,i1,i2);
if(cmp(a, b, i1, i2)>0){
ret.push_back(a[i1++]);
}else{
ret.push_back(b[i2++]);
}
}
}
return ret;
}
bool cmp(vector<int>& a,vector<int>& b,int i1,int i2){
int m=a.size();
int n=b.size();
while(i1<m&&i2<n){
if(a[i1]==b[i2]){
i1++,i2++; continue; } if(a[i1]>b[i2]) return true; else return false; } return (m-i1)>(n-i2);
}
};```
边栏推荐
- IIS安装 部署网站
- 企鹅电竞停步,虎牙也难行
- THE LOTTERY TICKET HYPOTHESIS: FINDING SPARSE, TRAINABLE NEURAL NETWORKS论文笔记
- Mmdetection build_ Optimizer module interpretation
- 红色垂直左侧边菜单导航代码
- Penguin E-sports stops, and tiger teeth are hard to walk
- 正斜杠“/”、反斜杠“\、”转义字符“\”、文件路径分割符傻傻记不清楚
- Importerror: libgl. so. 1: cannot open shared object file: no such file or directory
- js锚点定位可以扩展很多功能
- Only three steps are needed to learn how to use low code thingjs to connect with Sen data Dix data
猜你喜欢
随机推荐
Nacos registry
使用Canvas实现的噪音线条h5js特效
厉害了,工信部推出 “一键解绑” 手机号绑定的互联网账号,堪称神器
目标客户匹配数据表格成功案例展示
mapbox-gl开发教程(十一):加载线图层
Analysis of transfer Refund Scheme in e-commerce industry
基于DeepFace模型设计的人脸识别软件
protoc-gen-go-grpc‘不是内部或外部命令,也不是可运行的程序 或批处理文件
4. ssh
Nacos配置管理
Only three steps are needed to learn how to use low code thingjs to connect with Sen data Dix data
LeetCode树经典题目(一)
Lifeifei: I am more like a scientist in physics than an engineer
canvas发散的粒子h5动画js特效
mmdetection之dataset类解读
Talk about message oriented middleware (1) and AMQP
绘制混淆矩阵
Gateway服务网关
com.netflix.client.ClientException: Load balancer does not have available server for client: userser
Force buckle 20 Valid parentheses









