为有牺牲多壮志,敢教日月换新天。

[Swift]LeetCode1323. 6和9组成的最大数字 | Maximum 69 Number

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(let_us_code)
➤博主域名:https://www.zengqiang.org
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/12213368.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

Given a positive integer num consisting only of digits 6 and 9.

Return the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).

 

Example 1:

Input: num = 9669
Output: 9969
Explanation:
Changing the first digit results in 6669.
Changing the second digit results in 9969.
Changing the third digit results in 9699.
Changing the fourth digit results in 9666. 
The maximum number is 9969.
Example 2:

Input: num = 9996
Output: 9999
Explanation: Changing the last digit 6 to 9 results in the maximum number.
Example 3:

Input: num = 9999
Output: 9999
Explanation: It is better not to apply any change.
 

Constraints:

1 <= num <= 10^4
num's digits are 6 or 9.


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

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

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

 

示例 1:

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

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

输入:num = 9999
输出:9999
解释:无需改变就已经是最大的数字了。
 

提示:

1 <= num <= 10^4
num 每一位上的数字都是 6 或者 9 。


Runtime: 8 ms
Memory Usage: 20.9 MB
 1 class Solution {
 2     func maximum69Number (_ num: Int) -> Int {
 3         var i:Int = 1
 4         var j:Int = 0
 5         var n:Int = num
 6         while(n > 0)
 7         {
 8             if  n % 10 == 6
 9             {
10                 j = i
11             }
12             n /= 10
13             i *= 10
14         }
15         return j == 0 ? num : num + j * 3
16     }
17 }

 

posted @ 2020-01-19 13:43  为敢技术  阅读(596)  评论(0编辑  收藏  举报