Given a non-negative integer, you could swap two digits at most once to get the maximum valued number. Return the maximum valued number you could get.
Example 1:
Input: 2736
Output: 7236
Explanation: Swap the number 2 and the number 7.
Example 2:
Input: 9973
Output: 9973
Explanation: No swap.
Note:
The given number is in the range [0, 108]
本题题意很简单,直接暴力交换即可
代码如下:
#include <iostream>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <queue>
#include <stack>
#include <string>
#include <climits>
#include <algorithm>
#include <sstream>
#include <functional>
#include <bitset>
#include <numeric>
#include <cmath>
#include <regex>
#include <iomanip>
using namespace std;
class Solution
{
public:
int maximumSwap(int num)
{
int res = num;
string a = to_string(num);
for (int i = 0; i < a.length(); i++)
{
for (int j = i + 1; j < a.length(); j++)
{
swap(a[i], a[j]);
res = max(res, stoi(a));
swap(a[i], a[j]);
}
}
return res;
}
};