1. 程式人生 > 其它 >LeetCode 5626. 十-二進位制數的最少數目(腦筋急轉彎)

LeetCode 5626. 十-二進位制數的最少數目(腦筋急轉彎)

技術標籤:LeetCode

文章目錄

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阿明),一起加油、一起學習進步!
Michael阿明