1689. 十-二进制数的最少数目(Medium)

题目

题目及示例

我的题解

像剥洋葱一样一层一层的减少,实际上就是得到该字符串中最大值。

class Solution {
    public int minPartitions(String n) {
        char max = n.charAt(0);
        for (int i = 1; i < n.length(); i++) {
            max = (max > n.charAt(i)) ? max : n.charAt(i);
        }
        return (int) max - '0';
    }
}

其他题解

解法链接

易错点

  • 注意不要直接减去最大位数的111…,这样会导致后面数据变化量很大,从而得到的值不是最小的;例如:82734 = 7 * 11111 + 4*1111 + 4*111 + 6*11 + 3*1n=24,然而当82734 = 2*11111 + 1*10111 + 1*10101 + 3*10100 + 1*10000时,n=8
  • 注意charint的转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值