(Java实现) 光荣的梦想
JAVA 实现 梦想
2023-09-14 08:58:18 时间
光荣的梦想
Time Limit:10000MS Memory Limit:65536K
Total Submit:110 Accepted:45
Description
Prince对他在这片大陆上维护的秩序感到满意,于是决定启程离开艾泽拉斯。在他动身之前,Prince决定赋予King_Bette最强大的能量以守护世界、保卫这里的平衡与和谐。在那个时代,平衡是个梦想。因为有很多奇异的物种拥有各种不稳定的能量,平衡瞬间即被打破。KB决定求助于你,帮助他完成这个梦想。
一串数列即表示一个世界的状态。
平衡是指这串数列以升序排列。而从一串无序数列到有序数列需要通过交换数列中的元素来实现。KB的能量只能交换相邻两个数字。他想知道他最少需要交换几次就能使数列有序。
Input
第一行为数据的组数N。对于每组数据,第一行为数列中数的个数n,第二行为n <= 10000个数。表示当前数列的状态。
Output
输出一个整数,表示最少需要交换几次能达到平衡状态。
Sample Input
4
2 1 4 3
Sample Output
2
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class guangrongdemengxiang {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(),mid = 0,sum=0;
int [] num = new int [n];
for (int i = 0; i < num.length; i++) {
num[i]=sc.nextInt();
list.add(num[i]);
}
Arrays.sort(num);
for (int i = 0; i < num.length; i++) {
if(num[i]==list.get(i)) continue;
for (int start = 0,end=num.length-1;;) {
mid=(start+end)/2;
if(num[mid]<list.get(i)){
if(mid==start){
start=end;
continue;
}
start=mid;
end=num.length-1;
}
else if(num[mid]>list.get(i)){
start=0;
end=mid;
}
else{
int temp = list.remove(i);
list.add(mid, temp);
sum+=Math.abs(mid-i);
break;
}
}
}
System.out.println(sum);
}
}
相关文章
- Java实现 蓝桥杯 算法训练 Lift and Throw
- Java实现 蓝桥杯 算法训练 My Bad(暴力)
- Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)
- Java实现蓝桥杯打印图形
- Java实现 LeetCode 230 2的幂
- Java实现 LeetCode 226 翻转二叉树
- Java实现 LeetCode 189 旋转数组
- Java实现 LeetCode 110 平衡二叉树
- Java实现指定年份月份的日历表
- Java实现空瓶换汽水
- java实现第五届蓝桥杯猜年龄
- java实现购物券消费方案
- java实现 蓝桥杯 算法训练 Password Suspects
- Java实现 蓝桥杯VIP 算法提高 递归倒置字符数组
- Java实现 蓝桥杯VIP 算法提高 Torry的困惑(提高型)
- Java实现 蓝桥杯VIP 算法训练 幂方分解
- (Java实现) 光荣的梦想
- (Java实现) 洛谷 P1319 压缩技术
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- macos:安装java 17.0.6(android studio报错:Unable to locate a Java Runtime.)
- 使用Java标准的java.util.EventListener实现观察者-发布者设计模式
- how is Java Bean object created
- Atitit 搜索蓝牙设备 powershell的实现 java noede.js python 先用脚本语言python nodejs,不好实现。。Java 也不好实现。。 Netcore可以,
- Atitit java播放器调音速率快慢的实现 目录 1.1. 原理 本质上是改变采样率即可1 2. 使用Java增加/降低AudioInputStream的音频播放速度(Increase/dec
- Java中Optional的使用指南
- JAVA语言之Java 中不同的并行实现的性能比较
- Java:Java编程实现导出二维码
- 【java】Java 中泛型的实现原理
- 【java】Java并发编程--Java实现多线程的4种方式