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

做直播信号网站seo自然排名

做直播信号网站,seo自然排名,wordpress主题发布,做推送的网站碎碎念:加油 参考:代码随想录 452. 用最少数量的箭引爆气球 题目链接 452. 用最少数量的箭引爆气球 思想 局部最优: 让重叠的气球尽量在一起,用一支弓箭射。 全局最优: 用最少数量的箭引爆气球。 首先对气球进行排…

碎碎念:加油
参考:代码随想录

452. 用最少数量的箭引爆气球

题目链接

452. 用最少数量的箭引爆气球

思想

局部最优: 让重叠的气球尽量在一起,用一支弓箭射。
全局最优: 用最少数量的箭引爆气球。
首先对气球进行排序,可以按照左边界排序,这样可能会重叠的气球排在一起。
如何判断气球重叠 ,因为左边界已经排序了,所以判断看右边界即可。如果第i个气球的左边界小于等于前一个气球的右边界,说明两个气球重叠了。
此时我们想看这两个气球和下一个气球是否重叠 ,就需要更新右边界,更新为两个气球右边界的最小值。更新右边界,用来和下一个气球比较。

题解

// cpp
class Solution {
public:static bool cmp(const vector<int>& a, const vector<int>& b) {return a[0] < b[0];}int findMinArrowShots(vector<vector<int>>& points) {if (points.size() == 0) return 0;sort(points.begin(), points.end(), cmp);int result = 1;for (int i = 1; i < points.size(); i++) {if (points[i][0] > points[i - 1][1]) {result++;} else {points[i][1] = min(points[i][0], points[i - 1][0]);}}return result;}
};
# python
class Solution:def findMinArrowShots(self, points: List[List[int]]) -> int:if len(points) == 0:return 0points.sort(key=lambda x:x[0])result = 1for i in range(1, len(points)):if points[i][0] > points[i - 1][1]:result += 1else:points[i][1] = min(points[i][1], points[i - 1][1])return result

反思

result从1开始,因为显然使得所有气球都爆炸的箭的数量最少为1。

435. 无重叠区间

题目链接

435. 无重叠区间

思想

本题的思想和上一题很相似。
首先排序,让相邻的区间尽可能挨在一起。本做法用的是按照左边界排序。
判断相邻区间是否重叠: 如果当前遍历到的区间的左边界小于上一个区间的右边界,那么它们就是重叠的,result加一,更新右边界的大小,更新为两个区间右边界中较小的那个。

题解

// cpp
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 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;}
};
# python
class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:if len(intervals) == 0:return 0intervals.sort(key=lambda x:x[0])result = 0for i in range(1, len(intervals)):if intervals[i][0] < intervals[i - 1][1]:result += 1intervals[i][1] = min(intervals[i][1], intervals[i - 1][1])return result

反思

763.划分字母区间

题目链接

763.划分字母区间

思想

遍历字符串,统计每个字符出现的最远位置。
遍历字符串,更新字符的最远出现下标,如果找到字符的最远出现位置下标和当前的下标相等了,就找到了分割点。请添加图片描述

题解

// cpp
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;}
};
# python
class Solution:def partitionLabels(self, s: str) -> List[int]:hash_ = {}for i, ch in enumerate(s):hash_[ch] = iresult = []left = 0right = 0for i, ch in enumerate(s):right = max(right, hash_[ch])if i == right:result.append(right - left + 1)left = i + 1return result

反思

http://www.bjxfkj.com.cn/article/105891.html

相关文章:

  • 武汉网站制作027外链兔
  • 做加工都在哪个网站推广脑白金网络营销
  • 建设银行网站打印消费账单优化推广网站怎么做最好
  • 销售型网站建设基本要素营销公司网站
  • 弹窗广告最多的网站搜索引擎seo如何赚钱
  • 青岛做网站要多少钱百度云盘资源
  • 搜索引擎营销漏斗模型网站seo案例
  • 网站自适应北京seo顾问外包
  • 焦作百姓网免费发布信息seo排名优化的方法
  • 东城手机网站建设搜索技巧
  • 谷哇网站建设网络推广公司专业网络
  • 江西建设信息网站怎么在百度发帖
  • 济南住房和城乡建设部网站大数据精准营销
  • 做网站 哪里发布登封网站关键词优化软件
  • 重庆网站搭建方案广州今日刚刚发生的新闻
  • 网站基础上添加建设方案模板怎么推广app
  • 人事处网站开发文献综述网站推广郑州
  • 广西排名前十的模板厂爱站seo工具
  • 做么网站有黄seo人员是什么意思
  • 手机网站端域名怎样做解析总裁培训班
  • 网站的图片怎么更换目前最靠谱的推广平台
  • 东莞做网站 自媒体廊坊seo管理
  • 拟一份饰品网站建设合同营销策划的六个步骤
  • 房产网站排行榜郑州网站seo推广
  • 哪家网站做教育培训机构转让徐州网站建设
  • 怎么做交易网站打开浏览器直接进入网站
  • 做论文常用网站学会计哪个培训机构比较正规
  • 福州市建设工程招投标信息网搜索引擎优化文献
  • 网站是做推广好还是优化好网络营销的缺点及建议
  • 浏览wap网站印度疫情最新消息