1689.十-二进制数的最少数目:一次遍历比大小(脑筋急转弯)
【LetMeFly】1689.十-二进制数的最少数目:一次遍历比大小(脑筋急转弯)
力扣题目链接:https://leetcode.cn/problems/partitioning-into-minimum-number-of-deci-binary-numbers/
如果一个十进制数字不含任何前导零,且每一位上的数字不是 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 <= 105n仅由数字组成n不含任何前导零并总是表示正整数
解题方法:遍历
123变成了000的时候,$123$就变成了$0$。
每次每个字符可以减0或1,最多几次可以将字符串减为全0?
答案是字符串中最大的那个字符对应的数字次。
- 时间复杂度$O(len(n))$
- 空间复杂度$O(1)$
AC代码
C++
1 | |
Python
1 | |
Java
1 | |
Go
1 | |
Rust
1 | |
Rust - one line
1 | |
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
千篇源码题解已开源
1689.十-二进制数的最少数目:一次遍历比大小(脑筋急转弯)
https://blog.letmefly.xyz/2026/03/01/LeetCode 1689.十-二进制数的最少数目/