Leetcode每日一题 —— 1689. 十-二进制数的最少数目
- 内容介绍
- 文章标签
- 相关推荐
1689. 十-二进制数的最少数目 - 力扣(LeetCode)
1689. 十-二进制数的最少数目 - 如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。 给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。 示例 1: 输入:n = "32" 输出:3 解释:10 + 11 + 11 = 32 示例 2: 输入:n = "82734" 输出:8 示例 3: 输入:n...
今天白天得忙返校,凌晨先把每日一题做了,今天还好是简单题。
思路
从 0 开始到 n,每个数位每次操作只能 +1,我可以尽量每次往所有缺 1 的数位上放 1,因此最终的操作数目显然就是值最大的数位的值。
代码
class Solution {
public:
int minPartitions(string n) {
// 观察发现这只和 n 中值最大的数位有关
int res = 0;
for (char c : n) {
res = max(res, (int)(c - '0'));
}
return res;
}
};
网友解答:
--【壹】--:
脑筋急转弯题目,每位至少都要有个1叠起来,找最大的那位就行了 w
转set速度更快,不然会比较慢 w
class Solution:
def minPartitions(self, n: str) -> int:
return int(max(set(list(n))))
--【贰】--:
Screenshot_2026-03-01-01-25-45-953_com.android.chrome1080×2400 168 KB
终于有我也能一遍超100%的题了
--【叁】--:
这个set和list转换只是为了快一点,不然数字串长了max速度就会很慢了 w
--【肆】--:
其实可以直接int(max(n))
--【伍】--:
今天有事,幸好是简单题。
代码
public int minPartitions(String n) {
int ans = 0;
char max = '0';
for (char chr : n.toCharArray()) {
if (chr > max) {
max = chr;
ans = max - '0';
}
}
return ans;
}
--【陆】--:
今天是简单思维题
--【柒】--:
脑筋急转弯嘛这道题目。
1689. 十-二进制数的最少数目 - 力扣(LeetCode)
1689. 十-二进制数的最少数目 - 如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。 给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。 示例 1: 输入:n = "32" 输出:3 解释:10 + 11 + 11 = 32 示例 2: 输入:n = "82734" 输出:8 示例 3: 输入:n...
今天白天得忙返校,凌晨先把每日一题做了,今天还好是简单题。
思路
从 0 开始到 n,每个数位每次操作只能 +1,我可以尽量每次往所有缺 1 的数位上放 1,因此最终的操作数目显然就是值最大的数位的值。
代码
class Solution {
public:
int minPartitions(string n) {
// 观察发现这只和 n 中值最大的数位有关
int res = 0;
for (char c : n) {
res = max(res, (int)(c - '0'));
}
return res;
}
};
网友解答:
--【壹】--:
脑筋急转弯题目,每位至少都要有个1叠起来,找最大的那位就行了 w
转set速度更快,不然会比较慢 w
class Solution:
def minPartitions(self, n: str) -> int:
return int(max(set(list(n))))
--【贰】--:
Screenshot_2026-03-01-01-25-45-953_com.android.chrome1080×2400 168 KB
终于有我也能一遍超100%的题了
--【叁】--:
这个set和list转换只是为了快一点,不然数字串长了max速度就会很慢了 w
--【肆】--:
其实可以直接int(max(n))
--【伍】--:
今天有事,幸好是简单题。
代码
public int minPartitions(String n) {
int ans = 0;
char max = '0';
for (char chr : n.toCharArray()) {
if (chr > max) {
max = chr;
ans = max - '0';
}
}
return ans;
}
--【陆】--:
今天是简单思维题
--【柒】--:
脑筋急转弯嘛这道题目。

