LeetCode 5626. 十-二進位制數的最少數目(腦筋急轉彎)
阿新 • • 發佈:2020-12-18
技術標籤:LeetCode
文章目錄
1. 題目
如果一個十進位制數字不含任何前導零,且每一位上的數字不是 0 就是 1 ,那麼該數字就是一個 十-二進位制數 。
例如,101 和 1100 都是 十-二進位制數,而 112 和 3001 不是。
給你一個表示十進位制整數的字串 n ,返回和為 n 的 十-二進位制數 的最少數目。
示例 1:
輸入:n = "32"
輸出:3
解釋:10 + 11 + 11 = 32
示例 2:
輸入:n = "82734"
輸出:8
示例 3:
輸入:n = "27346209830709182346"
輸出:9
提示:
1 <= n.length <= 10^5
n 僅由數字組成
n 不含任何前導零並總是表示正整數
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/partitioning-into-minimum-number-of-deci-binary-numbers
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
2. 解題
- 每一位數都要被減為 0
- 最多9次,找出最大的數位
class Solution {
public:
int minPartitions(string n) {
int ans = 0;
for(int i = 0; i < n.size(); ++i)
{
ans = max(ans, n[i]-'0');
if(ans == 9)
return 9;
}
return ans;
}
};
40 ms 13.7 MB C++
我的CSDN部落格地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!