贪心5

  1. 合并区间
class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>& b ){
            return a[0] < b[0];
        });
        vector<vector<int>> result;
        for(int i = 1; i < intervals.size(); i++)
        {
            if(intervals[i][0] >= intervals[i - 1][0] && intervals[i][0] <= intervals[i - 1][1])
            {
                intervals[i][0] = intervals[i - 1][0];
                intervals[i][1] = max(intervals[i][1], intervals[i - 1][1]);
            }
            else
            {
                result.push_back(intervals[i - 1]);
            }
        }
        result.push_back(intervals.back());
        return result;
    }
};
  1. 单调递增的数字
class Solution {
public:
    int monotoneIncreasingDigits(int n) {
        string str = to_string(n);
        int flag = str.size();
        for(int i = str.size() - 1; i > 0; i--)
        {
            if(str[i - 1] > str[i])
            {
                str[i - 1]--;
                flag = i;
            }
        }
        for(int i = flag; i < str.size(); i++)
        {
            str[i] = '9';
        }
        return stoi(str);
    }
};
posted @ 2025-02-15 20:51  skyler886  阅读(8)  评论(0)    收藏  举报