# Maximum Swap LeetCode Solution

Here, We see Maximum Swap LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.

# List of all LeetCode Solution

## Problem Statement

You are given an integer num. You can swap two digits at most once to get the maximum valued number.

Return the maximum valued number you can get.

Example 1:
Input: num = 2736
Output: 7236
Explanation: Swap the number 2 and the number 7.

Example 2:
Input: num = 9973
Output: 9973
Explanation: No swap.

## Maximum Swap Leetcode SolutionC++

``````class Solution {
public:
int maximumSwap(int num) {
string s = to_string(num);
string s1 = s;
for(int i=0;i<s.length();i++)
{
int temp = getmax(s,i);
swap(s[i],s[temp]);
if(s1!=s)
break;
}
int number = stoi(s);
return number;
}
static int getmax(string s, int i){
int max=i;
for(int j=i;j<s.length();j++)
{
if(s[max]<=s[j])
max=j;
}
return max;
}
};```Code language: PHP (php)```

## Maximum Swap Leetcode SolutionJava

``````class Solution {
public int maximumSwap(int num) {
if(num < 10) return num;
char[] arr = String.valueOf(num).toCharArray();
int[] rightIndex = new int[10];
for(int i=0; i<arr.length; i++){
rightIndex[arr[i] - '0'] = i;
}
for(int i=0; i<arr.length; i++){
for(int j=9; j>arr[i] - '0'; j--){
if(rightIndex[j] > i){
char temp = arr[i];
arr[i] = arr[rightIndex[j]];
arr[rightIndex[j]] = temp;
return Integer.valueOf(new String(arr));
}
}
}
return num;
}
}```Code language: JavaScript (javascript)```

## Maximum Swap SolutionJavaScript

``````var maximumSwap = function(num) {
const digits = num.toString().split("");
let max = -1, maxIdx = -1, leftIdx = -1, rightIdx = -1;
for(let i = digits.length - 1; i >= 0; i--) {
const digit = parseInt(digits[i]);
if(digit > max) max = digit, maxIdx = i;
else if(digit < max) leftIdx = i, rightIdx = maxIdx;
}
if(leftIdx === -1) return num;
[digits[leftIdx],digits[rightIdx]] = [digits[rightIdx],digits[leftIdx]];
return parseInt(digits.join(""));
};```Code language: JavaScript (javascript)```

## Maximum Swap SolutionPython

``````class Solution(object):
def maximumSwap(self, num):
s = list(str(num))
n = len(s)
for i in range(n-1):
if s[i] < s[i+1]: break
else: return num
max_idx, max_val = i+1, s[i+1]
for j in range(i+1, n):
if max_val <= s[j]: max_idx, max_val = j, s[j]
left_idx = i
for j in range(i, -1, -1):
if s[j] < max_val: left_idx = j
s[max_idx], s[left_idx] = s[left_idx], s[max_idx]
return int(''.join(s)) ``````
Scroll to Top