给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。
class Solution {
public int maximumSwap(int num) {
char[] data = String.valueOf(num).toCharArray();
for(int i = 0; i < data.length; i++){
char max = data[i];
int no = i;
for(int j = i + 1; j < data.length; j++){
if(data[j] > max || (data[j] == max && no != i)){
max = data[j];
no = j;
}
}
if(no != i){
data[no] = data[i];
data[i] = max;
break;
}
}
return Integer.valueOf(new String(data));
}
}