| 1234567891011121314151617181920212223242526 | func maximumSwap(num int) int {	digit := make([]int, 0)	for i := num; 0 < i; i /= 10 {		digit = append(digit, i%10)	}	n := len(digit)	max := make([]int, n)	for i := 1; i < n; i++ {		max[i] = i // max[i]: the maximum digit that lower than the ith digit		if digit[i] <= digit[max[i-1]] {			max[i] = max[i-1]		}	}	for i := n - 1; 0 <= i; i-- {		if digit[i] < digit[max[i]] {			digit[i], digit[max[i]] = digit[max[i]], digit[i]			res := 0			for j := n - 1; 0 <= j; j-- {				res *= 10				res += digit[j]			}			return res		}	}	return num}
 |