Leetcode Q1323 题解

今日水一基础题。

题目:

给你一个仅由数字 6 和 9 组成的正整数 num

你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。

请返回你可以得到的最大数字。

示例 1:

输入:num = 9669
输出:9969
解释:
改变第一位数字可以得到 6669 。
改变第二位数字可以得到 9969 。
改变第三位数字可以得到 9699 。
改变第四位数字可以得到 9666 。
其中最大的数字是 9969 。

示例 2:

输入:num = 9996
输出:9999
解释:将最后一位从 6 变到 9,其结果 9999 是最大的数。

想法:

        这题仅是贪心的一道入门题,只需考虑将为6的最高一位变成9就好了。

代码如下(非最优解)

int maximum69Number (int num) {
    int temp = num, cnt = 0, a[6] = {0};
    while(num > 0){
        a[cnt++] = num % 10;
        num = num / 10;
    }
    for(int i = cnt; i >= 0; i--){
        if(a[i] == 6){
            a[i] = 9;
            break;
        }
    }
    for(int i = 0; i < 5; i++){
        num += a[i] * pow(10, i);
    }
    return num;
}

​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值