最少交换次数
淙嶙5年前 (2020-07-22)未命名1001
描述
给出一个无序数列,每次只能交换相邻两个元素,求将原数列变成递增数列的最少交换次数。
如:数列:2,3,1,交换3和1后变成:2,1,3;交换1和2之后变成:1,2,3。总共交换2次。
输入
逗号隔开的正整数数列
输出
正整数
输入样例
2,3,1
输出样例
2
<
pre class="brush:java;toolbar:false">private static String solution(String line) {
// 在此处理单行数据
String[] a = line.split(",");
List
list = new LinkedList();
for(int i =0;i<a.length;i++){
list.add(Integer.parseInt(a[i]));
}
int count = list.size() -1;
int changeCount = 0;
int maxIndex = 0;
while(count-- > 0){
maxIndex = 0;
for(int j= 1;j<list.size();j++){
if(list.get(maxIndex) < list.get(j)){
maxIndex = j;
}
}
changeCount += list.size() -1 - maxIndex;
list.remove(maxIndex);
}
return String.valueOf(changeCount);
}