Java
class Solution {
public int maximumSwap(int num) {
char[] dig=Integer.toString(num).toCharArray();
int[] nums=new int[10];
for(int i=0;i<dig.length;i++){
nums[dig[i]-'0']=i;
}
for(int i=0;i<dig.length;i++){
for(int j=9;j>dig[i]-'0';j--){
if(nums[j]>i){
char tmp=dig[i];
dig[i]=dig[nums[j]];
dig[nums[j]]=tmp;
return Integer.valueOf(new String(dig));
}
}
}
return num;
}
}