[leetcode题解]1323.Maximum 69 Number(6和9组成的最大数字)

本题是个简单题目,是leetcode题解第1232题,给定一个最大四位数,这个四位数每一位要么是6要么是9.

要求是在这个数中最多只能翻转一位,比如有6变成9,或者由9变成6,然后在所有的变换数中,找到最大的那个数返回即可,如题目所说,找6和9组成的最大数字。

题目的思路也很简单,从高位到低位,将第一个遇到的6变成9即可。

不可能把9变成6,因为把9变成6至少就比不变之前小了。

只需要变最高位的6即可。如果没有6,则不需要进行任何操作,就是最大的数。

(欢迎查看其他leetcode题解

leetcode题解1232具体代码如下:

class Solution {
public:
    int maximum69Number (int num) {
        int arr[5];
        int idx;
        bool changed;
        int res, i;
        
        idx = 0;
        while (num != 0) {
            arr[idx++] = num % 10;
            num /= 10;
        }
        
        /* 有iaccepted发布在凌风技术站iaccepted.net */
        changed = false;
        res = 0;
        for (i = idx - 1; i >= 0; i--) {
            res *= 10;
            if (!changed && arr[i] == 6) {
                /* 从高位开始,第一个6转成9,一定得到最大 */
                arr[i] = 9;
                changed = true;
            }
            res += arr[i];
        }
        return res;
    }
};

本题是凌风技术站leetcode题解第1232题。

本文遵从CC3.0协议转载请注明:转自凌风技术站

本文标题:[leetcode题解]1323.Maximum 69 Number(6和9组成的最大数字)

本文链接地址:https://www.iaccepted.net/algorithm/leetcode/246.html

相关文章