Day36 贪心算法 part05 435. 无重叠区间 763. 划分字母区间 56. 合并区间

贪心算法 part05 435. 无重叠区间 763. 划分字母区间 56. 合并区间

435. 无重叠区间

class Solution {
private:
    bool static Compare(const vector<int>& a, const vector<int>& b){
        return a[0] <b[0];
    }
public:
    int eraseOverlapIntervals(vector<vector<int>>& intervals) {
        sort(intervals.begin(),intervals.end());
        int result = 0;
        for(int i = 0; i<intervals.size()-1;i++){
            if(intervals[i][1]>intervals[i+1][0]) 
            {
                result++;
                intervals[i+1][1] = min(intervals[i][1],intervals[i+1][1]);
            }
        }
        return result;
    }
};

763. 划分字母区间

class Solution {
public:
    vector<int> partitionLabels(string S) {
        int hash[26] = {0}; // i为字符,hash[i]为字符出现的最后位置
        for (int i = 0; i < S.size(); i++) { // 统计每一个字符最后出现的位置
            hash[S[i] - 'a'] = i;
        }
        vector<int> result;
        int left = 0;
        int right = 0;
        for (int i = 0; i < S.size(); i++) {
            right = max(right, hash[S[i] - 'a']); // 找到字符出现的最远边界
            if (i == right) {
                result.push_back(right - left + 1);
                left = i + 1;
            }
        }
        return result;
    }
};

56. 合并区间

class Solution {
private:
    bool static Compare(const vector<int>& a, const vector<int>& b){
        return a[0] <b[0];
    }    
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>> result;
        sort(intervals.begin(),intervals.end(),Compare);
        result.push_back(intervals[0]);
        for(int i =1 ; i<intervals.size();i++){
            if(intervals[i][0]<=result.back()[1]){ //重叠
                result.back()[1] = max(result.back()[1], intervals[i][1]);
            }else result.push_back(intervals[i]);
        }
        return result;
    }
};
相关推荐
重生之我在VS写bug1 小时前
【C++知识总结2】C++里面的小配角cout和cin
数据结构·c++·算法
HUT_Tyne2651 小时前
力扣--LCR 141.训练计划III
算法·leetcode·职场和发展
pzn25062 小时前
蓝桥杯练习题
c++·算法·蓝桥杯
Zafir20242 小时前
Qt实现窗口内的控件自适应窗口大小
c++·qt·ui
捕鲸叉2 小时前
C++设计模式之组合模式中适用缓存机制提高遍历与查找速度
c++·设计模式·组合模式
奶茶戒断高手2 小时前
【CSP CCF记录】201903-2第16次认证 二十四点
数据结构·c++·算法
xxxmmc3 小时前
Leetcode 290 word Pattern
算法·leetcode·hashmap双映射
羽墨灵丘3 小时前
0-1背包问题(1):贪心算法
算法·贪心算法
shepherd枸杞泡茶4 小时前
C# 数据结构之【队列】C#队列
开发语言·数据结构·c#
黑眼圈的小熊猫4 小时前
数据结构--B树
数据结构·b树