文章目录
- 1. 题目
- 2. 解题
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阿明),一起加油、一起学习进步!