五一训练礼包 I-9

本题本质上就是寻找b数组中的值在a数组上的位置,且每找到一个就将a中找到的那个值移动到数组第一位。移动的操作为:用e储存要移动到首位的值,然后用循环将其前面的所有数向后移动一位,最后将e放在首位。
理解之后算法比较简单,用函数更加简洁。
#include<stdio.h>
int main()
{
  int n,q,i,j=0,l=0,e,h=0;
  scanf("%d%d",&n,&q);
  int a[300001],b[300001],c[300001];
  for(i=0;i<n;i++)
  {
  	scanf("%d",&a[i]);
  } 
  for(i=0;i<q;i++)
   {
   	scanf("%d",&b[i]);
   }
   while(1)
   {
   	if(h==q+1) break;
   	if(b[h]==a[j])
   	{
   		c[l]=j+1;l++;
   		e=a[j];
	    for(i=j-1;i>=0;i--)
	   {
		a[i+1]=a[i];
	   }
	   a[0]=e;
	   j=-1;h++;
	}
	j++;
   }
   for(i=0;i<q;i++)
   {
   	if(i==q-1)
   	{
   	printf("%d",c[i]);break;
	}
   	printf("%d ",c[i]);
   }
   return 0;
} 

#学习路径#
全部评论

相关推荐

鼠鼠求offer鸭:没事,骗一次就老实不会幻想有好事砸中自己了😂😂
点赞 评论 收藏
分享
Mush3r:1. 项目包装一下,比如说“跟某某电网/企业合作,已经实际交付”之类的,这样别人就觉得你至少是个实际的项目不是个玩具项目; 2. 对于 axios 这种工具,不要写“利用”,别人觉得是就是在调包,没什么技术含量,要写“重新封装”,可能实际上就是封装了一些 url 前缀之类的,但是听起来就更高级一点; 3. 结合缓存实现用户登陆,你作为前端是如何实现的?如何鉴权?token 过期如何设置?如何保证非登录用户不能访问页面/请求拦截器?一个都写没,前面这些都是面试会问的问题,但是面试官看了你这句话可能也不知道该问什么; 4. 利用 Vue3,通过 。。。 组件库,又是调包,这种没什么工作量,就是拿过来用一用的就不要往详情里写了,开头总结的时候提一嘴就行了; 后面小程序不怎么懂,不评价了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务