2578. 最小和分割 【整数转字符 排序后计算】

17 阅读1分钟

2578. 最小和分割

方法: 排序 + 贪心 O(mlogm)O(m)\lgroup O(m \log m)、O(m)\rgroup

class Solution:
    def splitNum(self, num: int) -> int:
        s = sorted(str(num))
        return int(''.join(s[::2])) + int(''.join(s[1::2]))

image.png

class Solution {
public:
    int splitNum(int num) {
        string s = to_string(num);
        sort(s.begin(), s.end());
        int a[2]{};
        for (int i = 0; i < s.size(); ++i){
            a[i % 2] = a[i % 2] * 10 + s[i] - '0'; // 奇偶分组
        }
        return a[0] + a[1];        
    }
};