十位二进制的最少数目-中等
2025-4-20
| 2025-4-20
Words 395Read Time 1 min
type
status
date
slug
summary
tags
category
icon
password

题目:

如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。
给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/partitioning-into-minimum-number-of-deci-binary-numbers 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
示例 1:
示例 2:
示例 3:

思路:

  • 把一个数转换成前置不为0的二进制数,加起来等于输入的数,因为不存在进位的情况,而且输出的只是几个数相加,那么就有一个巧妙的解法
  • 先找到字符串中最大的数字,因为是找最少的数目,那么最大数是影响结果的,而且最大数必须要全都是1才会最少,那么也就是说最少的数目就是最大数字的数目

代码:

结果:

notion image
image-20220121141128844
单例和多例注解的实现动态代理深入
Loading...