当前位置: 首页 > news >正文

启动网站集约化建设长沙装修公司招聘网

启动网站集约化建设,长沙装修公司招聘网,wordpress流行漏洞,单页型网站目录 LeeCode 435. 无重叠区间 LeeCode 763.划分字母区间 LeeCode 56. 合并区间 LeeCode 435. 无重叠区间 435. 无重叠区间 - 力扣(LeetCode) 思路1:按照右边界排序,从左向右记录非交叉区间的个数。最后用区间总数减去非交叉…

目录

LeeCode 435. 无重叠区间

LeeCode 763.划分字母区间

LeeCode 56. 合并区间


LeeCode 435. 无重叠区间

435. 无重叠区间 - 力扣(LeetCode)

思路1:按照右边界排序,从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区间的个数就是需要移除的区间个数了。

时间复杂度:O(n log n)       空间复杂度:O(n)

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

思路2:左边界排序,直接求 重叠的区间,count记录重叠区间数。

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) {if (intervals.size() == 0) return 0;sort(intervals.begin(), intervals.end(), cmp);int count = 0;for (int i = 1; i < intervals.size(); i++) {if (intervals[i][0] < intervals[i - 1][1]) {intervals[i][1] = min(intervals[i - 1][1], intervals[i][1]);count++;}}return count;}
};

LeeCode 763.划分字母区间

763. 划分字母区间 - 力扣(LeetCode)

思路1:遍历的过程中找每一个字母的边界,如果找到之前遍历过的所有字母的最远边界,说明这个边界就是分割点。

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, 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;}
};

思路2:统计字符串中所有字符的起始和结束位置,记录这些区间,将区间按左边界从小到大排序,找到边界将区间划分成组,互不重叠。找到的边界就是答案。

class Solution {
public:static bool cmp(vector<int>& a, vector<int>& b) {return a[0] < b[0];}vector<vector<int>> countLabels(string s) {vector<vector<int>> hash(26, vector<int>(2,INT_MIN));vector<vector<int>> hash_filter;for (int i = 0; i < s.size(); i++) {if (hash[s[i] - 'a'][0] == INT_MIN)  hash[s[i] - 'a'][0] = i;hash[s[i] - 'a'][1] = i;}for (int i = 0; i < hash.size(); i++) {if (hash[i][0] != INT_MIN)  hash_filter.push_back(hash[i]);}return hash_filter;}vector<int> partitionLabels(string s) {vector<int> res;vector<vector<int>> hash = countLabels(s);sort(hash.begin(), hash.end(), cmp);int rightBoard = hash[0][1];int leftBoard = 0;for (int i = 1; i < hash.size(); i++) {if (hash[i][0] > rightBoard) {res.push_back(rightBoard - leftBoard + 1);leftBoard = hash[i][0];}rightBoard = max(rightBoard, hash[i][1]);} res.push_back(rightBoard - leftBoard + 1);return res;}
};

LeeCode 56. 合并区间

56. 合并区间 - 力扣(LeetCode)

思路:对区间排序后判断是否重合,合并区间:将合并后的左右边界,作为一个新的区间,加入到result数组里就可以了。如果没有合并就把原区间加入到result数组。

时间复杂度:O(n log n)       空间复杂度:O(log n)

class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> result;if (intervals.size() == 0) return result;sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>& b){return a[0] < b[0];});result.push_back(intervals[0]);for (int i = 1; i < intervals.size(); i++) {if (result.back()[1] >= intervals[i][0]) result.back()[1] = max(result.back()[1], intervals[i][1]);else result.push_back(intervals[i]);}return result;}
};
http://www.15wanjia.com/news/158255.html

相关文章:

  • 广东网页设计网站网站搭建哪里找有名气
  • 如何避免网站被攻击网站的基本结构
  • wordpress建站吧分红网站建设
  • 渭南房产网站制作中卫网站推广优化公司
  • 门户网站做的比较好的公司沈阳市工伤网站做实
  • 网站你应该明白什么意思吗英文建站模板
  • 网站程序更换泰州市住房和城乡建设局官方网站
  • 东莞网站建设总部地址互联网开发技术
  • 天合建设集团网站怎样更新wordpress
  • 梦扬科技 合肥网站建设网络服务提供者接到权利人
  • 淘宝建设网站的理由企业微网站开发
  • 个人门户网站备案流程微信开发者选项在哪里打开
  • 做海报有什么素材网站知乎大型网站开发价格
  • 兰州网站在哪备案wordpress图片压缩插件
  • 做网站单页深圳住建局官网查询系统
  • 百度竞价排名价格查询高速wordpress优化
  • 尚品中国多年专注于高端网站建设什么软件可以制作图片加文字
  • 诸城网站建设开发长沙网站优化电话
  • 商业设计网站wordpress什么环境速度
  • 可以访问电脑网页的浏览器谷歌seo优化是什么
  • 软件下载网站如何履行安全管理义务确保提供的软件不含恶意程序广告产品
  • 广东建设执业资格中心网站企业进行网站建设的重要意义
  • 张家港网站建设公司广州网站开发定制
  • 泊头市网站建设公司服务好的企业做网站
  • seo免费网站建设寻花问柳-专注做一家男人的网站猪
  • 云服务器怎么发布网站app推广平台接单渠道
  • 孝感做网站上海网站营销seo电话
  • 固原网站制作wordpress 建博客教程
  • 商丘做网站需要多少钱太原做网站费用
  • 建设网站兼职泰州网站建设制作