当前位置: 首页 > news >正文

网址你会感谢我的郑州粒米seo外包

网址你会感谢我的,郑州粒米seo外包,男的做直播哪个网站好,太原本地网站搭建公司大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注 题目描述 有 N 个瓶子,编号 1∼N,放在架子上。 比如有 5 个瓶子: 2 1 3 5 4 要求每次拿起 2 个瓶子,交换它们的位置。 …

大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注

题目描述

有 N 个瓶子,编号 1∼N,放在架子上。
比如有 5 个瓶子:

2 1 3 5 4

要求每次拿起 2 个瓶子,交换它们的位置。

经过若干次后,使得瓶子的序号为:

1 2 3 4 5

对于这么简单的情况,显然,至少需要交换 2 次就可以复位。

如果瓶子更多呢?你可以通过编程来解决。
输入格式

第一行包含一个整数 N ,表示瓶子数量。

第二行包含 N 个整数,表示瓶子目前的排列状况。
输出格式
输出一个正整数,表示至少交换多少次,才能完成排序。

数据范围

1≤N≤10000 ,
输入样例1:

5
3 1 2 5 4

输出样例1:

3

输入样例2:

5
5 4 3 2 1

输出样例2:

2

分析

思路:选择排序
从前往后去枚举,先以当前枚举的数为最小值。
往后面去取最小的比他小的数,有就交换。没有就枚举下一个i
这样就保证了当前枚举的数是当前的最小值,再去枚举后面的数。
这样就确保枚举的每个数都有序并且操作次数是最少的。

更新最小值min
再去枚举下一个min,继续比较下面的数。
在交换两个数的时候,统计一下交换的次数。
最后输出交换的次数即可。

暴力

import java.io.*;
public class Main{static int N=10010;static boolean st[]=new boolean [N];static int a[]=new int[N];public static void main(String []args)throws IOException{BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));String str[]=bf.readLine().split(" ");int n=Integer.parseInt(str[0]);String s[]=bf.readLine().split(" ");for(int i=1;i<=n;i++){a[i]=Integer.parseInt(s[i-1]);}int cnt=0;for(int i=0;i<n;i++){int min=i;for(int j=i+1;j<=n;j++){if(a[min]>a[j]){min=j;}}if(min!=i){cnt++;int temp=a[i];a[i]=a[min];a[min]=temp;}}System.out.println(cnt);   }
}

暴力(非快读)

import java.util.*;
public class Main{static int N=10010;static int a[]=new int[N];public static void main(String []args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();for(int i=0;i<n;i++){a[i]=sc.nextInt();}int cnt=0;for(int i=0;i<n-1;i++){int min=i;for(int j=i+1;j<n;j++){if(a[min]>a[j]){min=j;}}if(min!=i){cnt++;int temp=a[i];a[i]=a[min];a[min]=temp;}}System.out.println(cnt);}}

环图

Accode

import java.io.*;
public class Main{static int N=10010;static boolean st[]=new boolean [N];static int a[]=new int[N];public static void main(String []args)throws IOException{BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));String str[]=bf.readLine().split(" ");int n=Integer.parseInt(str[0]);String s[]=bf.readLine().split(" ");for(int i=1;i<=n;i++){a[i]=Integer.parseInt(s[i-1]);}int cnt=0;for(int i=1;i<=n;i++){if(!st[i]){cnt++;for(int j=i;!st[j];j=a[j]){st[j]=true;}}} System.out.println(n-cnt);   }
}

往期回顾

不清楚蓝桥杯考什么的点点下方👇

考点秘籍

想背纯享模版的伙伴们点点下方👇

蓝桥杯省一你一定不能错过的模板大全(第一期)

蓝桥杯省一你一定不能错过的模板大全(第二期)

蓝桥杯省一你一定不能错过的模板大全(第三期)

蓝桥杯省一你一定不能错过的模板大全(第四期)!!!

想背注释模版的伙伴们点点下方👇

蓝桥杯必背第一期

蓝桥杯必背第二期

往期精彩回顾

蓝桥杯上岸每日N题 第一期(一)!!!

蓝桥杯上岸每日N题第一期(二)!!!

蓝桥杯上岸每日N题第一期(三)!!!

蓝桥杯上岸每日N题第二期(一)!!!

蓝桥杯上岸每日N题第三期(一)!!!

蓝桥杯上岸每日N题 第四期(最少刷题数)!!!

蓝桥杯上岸每日N题 第五期(山)!!!

蓝桥杯上岸每日N题 第六期(求阶乘)!!!

蓝桥杯上岸每日N题 第七期(小猫爬山)!!!

蓝桥杯上岸每日N题 第八期 (全球变暖)!!!

蓝桥杯每日N题 (消灭老鼠)

蓝桥杯每日N题(杨辉三角形)

蓝桥杯每日N题 (砝码称重)

蓝桥杯上岸每日N题(鸡尾酒)

操作系统期末题库 第九期(完结)

LeetCode Hot100 刷题(第三期)

idea创建SpringBoot项目报错解决方案

数据库SQL语句(期末冲刺)

想看JavaB组填空题的伙伴们点点下方 👇

填空题

竞赛干货

算法竞赛字符串常用操作大全

蓝桥杯上岸必刷!!!(模拟/枚举专题)

蓝桥杯上岸必背!!! (第三期 DP)

蓝桥杯上岸必背!!!(第四期DFS)

蓝桥杯上岸必背!!!(第五期BFS)

蓝桥杯上岸必背!!!(第六期树与图的遍历)

蓝桥杯上岸必背!!!(第七期 最短路算法)

蓝桥杯上岸必背!!!(第八期 简单数论)

蓝桥杯上岸必刷!!!(进制、数位专题)

蓝桥杯上岸考点清单 (冲刺版)!!!

蓝桥杯上岸必背模板 (纯享版)

http://www.yidumall.com/news/85419.html

相关文章:

  • 嘉兴高端网站定制合肥seo整站优化网站
  • 西昌网站建设百度推广账号
  • 使用wordpress搭建网站自己做网站的流程
  • 汽车贸易网站建设方案石家庄谷歌seo
  • 曰本免费网站品牌宣传推广策划方案
  • 网站建设waocc找客户资源的网站
  • wordpress4.7.0下载画质优化app下载
  • 网站开发语言哪种简单app注册推广平台
  • web做花店网站页面seo去哪里学
  • 搭建平台的目的和意义是什么优化营商环境条例全文
  • 装潢设计属于什么专业类别网站seo优化方案
  • 如何做优化网站的原创性文章沈阳沈河seo网站排名优化
  • 游戏门户网站模板长春百度推广公司
  • 网站建设竞价托管外包网络广告投放方案
  • 深圳网站建设10086网站开发流程有哪几个阶段
  • mvc实现新闻网站开发seo是什么级别
  • 免费的推广网站有哪些注册公司
  • templates翻译杭州seo专员
  • 智能建站与正常的网站百度快照优化
  • 烟台H5高端网站建设中国公关公司前十名
  • 武威住房和城乡建设厅网站b站免费推广app大全
  • 东莞网站推广团队电脑优化大师下载安装
  • 怎么区别网站开发语言广告投放公司
  • 外贸网站seo优化方案深圳网站设计公司
  • 手机怎么制作网站教程网络营销服务公司
  • 摄影网页面制作优化大师电脑版官方
  • 石家庄营销网站建设价格重庆森林经典台词截图
  • 一般网站怎么做推广seo培训一对一
  • 建设厅网站不能刷身份证实名制百度seo公司电话
  • 电商运营的基本内容seo免费优化公司推荐