https://leetcode.com/contest/leetcode-weekly-contest-48/problems/maximum-swap/
Way 1: #include <iostream> #include <list> using namespace std; class Solution { public: int maximumSwap(int num) { list<int> *buckets = new list<int>[10]; int digit = 0; int temp = num; while (temp != 0) { buckets[temp % 10].push_front(digit++); temp /= 10; } for (int i = 9; i >= 0; i--) { while (!buckets[i].empty()) { if (buckets[i].front() != (--digit)) { int target = buckets[i].back(); int plus = numberFromDigit(num, target); ...



留言
張貼留言