美团选择题好多好难,编程题倒是两道水题
第一题不是121212....就是212121,推下就知道4,7,10....这些是121212。
第二题呢,看错题意了,我以为是每次变化后第几个数移到前面,这个不会做啊。有没大佬做下?
然后看样例发现看错题了,离线做,最后面的肯定是在最前面的,然后标记下输出就行了
选择题真的多还难啊!
---------------------------------------------------
我还是贴下代码吧,写得有点搓
#include<cstdio>
using namespace std;
int main() {
int s,n;
while(scanf("%d",&n) != EOF) {
if(n < 3) printf("%d\n",n);
else if(n==3)printf("21\n");
else {
if((n - 1) % 3 == 0) {
bool flag = false;
while(n) {
if(flag) {
printf("2");
n -= 2;
}
else {
printf("1");
n -= 1;
}
flag = !flag;
}
puts("");
}
else {
bool flag = true;
while(n) {
if(flag) {
printf("2");
n -= 2;
}
else {
printf("1");
n -= 1;
}
flag = !flag;
}
puts("");
}
}
}
return 0;
} #include<cstdio>
#include<cstring>
using namespace std;
int a[100005];
bool vis[100005];
int main() {
int n,m;
scanf("%d%d",&n,&m);
for(int i = 0; i < m; i++) {
scanf("%d",&a[i]);
}
memset(vis,0,sizeof(vis));
for(int i = m-1; i >= 0; i--) {
if(!vis[a[i]]) {
printf("%d\n",a[i]);
vis[a[i]] = true;
}
}
for(int i = 1; i <= n; i++) {
if(!vis[i]) printf("%d\n",i);
}
return 0;
} 
凡岛公司福利 737人发布