Skip to content

Instantly share code, notes, and snippets.

@piyushdec
Created July 15, 2019 19:34
Show Gist options
  • Select an option

  • Save piyushdec/0e44eccdcc6764ebaa4d12399c6a2b56 to your computer and use it in GitHub Desktop.

Select an option

Save piyushdec/0e44eccdcc6764ebaa4d12399c6a2b56 to your computer and use it in GitHub Desktop.
func maximumSwap(number: Int) {
if number == 0 {
return
}
var digits = digitsFromNum(num: number)
var max_index = 0
var left = 0
var right = 0
for i in 0..<digits.count {
if digits[i] > digits[max_index] {
max_index = i
} else if digits[i] < digits[max_index] {
left = i
right = max_index
}
}
digits.swapAt(left, right)
print(numFromDigits(digits))
}
func digitsFromNum(num: Int) -> [Int] {
var digits = [Int]()
var num = num
while num != 0 {
digits.append(num % 10)
num /= 10
}
return digits
}
func numFromDigits(_ digits: [Int]) -> Int {
var num = 0
for i in 0..<digits.count {
num += Int(pow(10, Double(i))) * digits[i]
}
return num
}
maximumSwap(number: 2736)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment