AcWing 58. 58超级简单的方法
原题链接
中等
作者:
康康先生
,
2020-03-19 00:03:34
,
所有人可见
,
阅读 774
/*
朴素的代码。
创建一个同样大小的数组表示优先级, 把原nums数组中的数两两 前后拼接一下,拼接小的那方 在创建的数组里面优先级+1,最后优先级最高的就是排在最前面的,根据优先级排nums数组即可
*/
class Solution {
public String printMinNumber(int[] nums) {
int l[]=new int [nums.length]; //创建一个同大表各个元素优先级
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
if(i!=j) {
String str1=""+nums[i]+""+nums[j];
String str2=""+nums[j]+""+nums[i];
if(Integer.parseInt(str1)>Integer.parseInt(str2)) l[j]++; //哪个优先级大的就哪个+1
else l[i]++;
}
}
}
//所有两两比较后,优先级越大就是越要靠前的
for (int i = 0; i < l.length; i++) {
for (int j = 0; j <=i; j++) {
if(l[i]>l[j]) {int temp = l[i]; l[i]=l[j];l[j]=temp; temp = nums[i]; nums[i]=nums[j];nums[j]=temp;} //优先级数组l[] 怎么换,nums[]就怎么换
}
}
String temp="";
for (int i = 0; i < nums.length; i++) {
temp+=nums[i];//换好nums[],按顺序打印
}
return temp;
}
}