【LeetCode】每日一题 2023_12_9 下一个更大的数值平衡数(枚举/打表二分)

2023-12-13 03:44:13

刷题前唠嗑


LeetCode?启动!!!

题目:下一个更大的数值平衡数

题目链接:2048. 下一个更大的数值平衡数

题目描述

代码与解题思路

func nextBeautifulNumber(n int) int {
    for i := n+1; ; i++ { // 枚举
        cnt := [10]int{}
        for tmp := i; tmp > 0; tmp/=10 {
            cnt[tmp%10]++
        }
        isBeautifulNumber := true
        for j := i; j > 0; j/=10 { // 判断是不是最小数值平衡数
            if j%10 != cnt[j%10] { 
                isBeautifulNumber = false
                break
            }
        }
        if isBeautifulNumber == true {
            return i
        }
    }
}

今天的每日一题不太难,主要是读懂题目的给的:最小数值平衡数 是个什么东西,就拿题目的样例来说

  1. 22,他的 2 有两个,他是最小数值平衡数
  2. 1333,他的 1 有一个,3 有三个,他是最小数值平衡数
  3. 3133,他的 1 有一个,3 有三个,他是最小数值平衡数
  4. 444422,他的 4 有四个,2 有两个,他是最小数值平衡数

通过这四个样例大概就知道什么是最小数值平衡数了,然后题目就是要我们求他给出的数的下一个最小数值平衡数,那最简单的方法就是往后枚举,然后判断,也就是我的做法。

官方解法

class Solution {
public:
    const vector<int> balance {
        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
    };

    int nextBeautifulNumber(int n) {
        return *upper_bound(balance.begin(), balance.end(), n);
    }
};

打表。。。

结语

还以为官方有什么好活呢,结果是打表

文章来源:https://blog.csdn.net/Locky136/article/details/134894428
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。