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
![Maximum Swap LeetCode Solution](https://i0.wp.com/totheinnovation.com/wp-content/uploads/2024/02/LeetCode-Problem-Solution.png?resize=200%2C200&ssl=1)
Maximum Swap LeetCode Solution
Table of Contents
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 Solution C++
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 Solution Java
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 Solution JavaScript
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 Solution Python
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))