本文主要是介绍代码随想录算法训练营第三十六天|435.无重叠区间、763.划分字母区间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文档链接:https://programmercarl.com/
LeetCode435.无重叠区间
题目链接:https://leetcode.cn/problems/non-overlapping-intervals/
思路:同上一题用最少数量的箭引爆气球几乎一模一样呢,凡是重叠区间问题记得先排序。
代码:
class Solution {
public:static bool cmp(const vector<int>& a, const vector<int>& b) {return a[0] < b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {sort(intervals.begin(), intervals.end(), cmp);int result = 0;for(int i = 1; i < intervals.size(); i++) {if(intervals[i][0] < intervals[i - 1][1]) {result++;intervals[i][1] = min(intervals[i][1], intervals[i-1][1]);}}return result;}
};
LeetCode763.划分字母区间
题目链接:https://leetcode.cn/problems/partition-labels/
思路:思路有,不知道该怎么实现。还是题刷的太少了吗?
代码:
class Solution {
public:vector<int> partitionLabels(string s) {int hash[27] = {0};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;}
};
总结:补!
这篇关于代码随想录算法训练营第三十六天|435.无重叠区间、763.划分字母区间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!