3 条题解
-
4
链表写法
33写的,用我电脑发表一下
#include<bits/stdc++.h> using namespace std; int n,m; int x,y; struct Node{ int val,nxt; }; int tot;//当前已经使用了 a[1]~a[tot] int head;//当前的链表头 Node a[21234]; //返回链表的第pos个元素的下标 int idx(int pos){ int nowPos=1; int nowIdx=head; while(nowPos!=pos){ nowPos++; nowIdx = a[nowIdx].nxt; } return nowIdx; } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].val; a[i].nxt = i+1; } a[n].nxt=-1; tot = n; head = 1; cin>>m; for(int i=1;i<=m;i++) { cin>>x>>y; int xId = idx(x); tot++; a[tot].val=y; a[tot].nxt=a[xId].nxt; a[xId].nxt=tot; } for(int i=head;i!=-1;i=a[i].nxt){ cout<<a[i].val<<" "; } }
-
1
插一个把其后的往后挪一位即可 代码如下:
#include<bits/stdc++.h> using namespace std; int a[112345]; int main() { int n; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; int m; cin>>m; for(int i=1;i<=m;i++) { int b,c; cin>>b>>c; for(int j=n;j>=b;j--) { a[j+1]=a[j]; } n++; a[b+1]=c; } for(int i=1;i<=n;i++)cout<<a[i]<<' '; return 0; }
-
0
一维数组基础写法
#include<bits/stdc++.h> using namespace std; int main() { int n,m,x,y; int a[20001]; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>m; for(int t=1;t<=m;t++) { cin>>x>>y; //a[x] 的后面插入 y //a[x+1]~a[n] 往后挪一位 for(int i=n+1;i>=x+2;i--) a[i]=a[i-1]; /* for(int i=n;i>=x+1;i--) a[i+1]=a[i]; */ //把 y 放到 a[x+1] a[x+1]=y; //长度增加 1 n++; } for(int i=1;i<=n;i++) cout<<a[i]<<" "; cout<<"\n"; return 0; }
- 1
信息
- ID
- 1080
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 161
- 已通过
- 76
- 上传者