diff options
Diffstat (limited to 'other/balanced_num.cpp')
-rw-r--r-- | other/balanced_num.cpp | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/other/balanced_num.cpp b/other/balanced_num.cpp deleted file mode 100644 index 779cb06..0000000 --- a/other/balanced_num.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// 2048. Next Greater Numerically Balanced Number -#include "leetcode.h" - -/* - * an integer 'x' is numerically balanced if for every digit 'd' in the number - * 'x', there are exactly 'd' occurences of that digit in 'x'. given an integer - * 'n', return the smallest numerically balanced number strictly greater than - * 'n' - */ - -class Solution { -public: - int nextBeautifulNumber(int n) { - /* - vector<int> all; - for (int i = 0; i <= 1224444; ++i) { - int v = i; - unordered_map<int, int> m; - while (v > 0) { - ++m[v % 10]; - v /= 10; - } - for (auto &p : m) { - if (p.first != p.second) - goto L; - } - all.push_back(i); - L:; - } - */ - static vector<int> all{ - 0, 1, 22, 122, 212, 221, 333, 1333, 3133, - 3313, 3331, 4444, 14444, 22333, 23233, 23323, 23332, 32233, - 32323, 32332, 33223, 33232, 33322, 41444, 44144, 44414, 44441, - 55555, 122333, 123233, 123323, 123332, 132233, 132323, 132332, 133223, - 133232, 133322, 155555, 212333, 213233, 213323, 213332, 221333, 223133, - 223313, 223331, 224444, 231233, 231323, 231332, 232133, 232313, 232331, - 233123, 233132, 233213, 233231, 233312, 233321, 242444, 244244, 244424, - 244442, 312233, 312323, 312332, 313223, 313232, 313322, 321233, 321323, - 321332, 322133, 322313, 322331, 323123, 323132, 323213, 323231, 323312, - 323321, 331223, 331232, 331322, 332123, 332132, 332213, 332231, 332312, - 332321, 333122, 333212, 333221, 422444, 424244, 424424, 424442, 442244, - 442424, 442442, 444224, 444242, 444422, 515555, 551555, 555155, 555515, - 555551, 666666, 1224444, - }; - return *upper_bound(all.begin(), all.end(), n); - } -}; - -int main() { - Solution obj; - printf("%d\n", obj.nextBeautifulNumber(1)); - printf("%d\n", obj.nextBeautifulNumber(1000)); - printf("%d\n", obj.nextBeautifulNumber(3000)); -} |