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

外贸seo外贸推广外贸网站建设外贸网站建设上海搜索引擎优化seo

外贸seo外贸推广外贸网站建设外贸网站建设,上海搜索引擎优化seo,建一个网站,网站模板免费下载网页模板文章目录 435. 无重叠区间思路思路代码困难 763.划分字母区间思路官方题解代码困难 56. 合并区间思路思路代码 今日收获 435. 无重叠区间 思路 重叠问题都需要先排好序,再贪心 思路代码 func eraseOverlapIntervals(intervals [][]int) int {sort.Slice(interva…

文章目录

  • 435. 无重叠区间
    • 思路
    • 思路代码
    • 困难
  • 763.划分字母区间
    • 思路
    • 官方题解
    • 代码
    • 困难
  • 56. 合并区间
    • 思路
    • 思路代码
  • 今日收获


435. 无重叠区间

思路

重叠问题都需要先排好序,再贪心

思路代码

func eraseOverlapIntervals(intervals [][]int) int {sort.Slice(intervals,func(i,j int)bool{return intervals[i][1]<intervals[j][1]})count:=1end:=intervals[0][1]for i:=1;i<len(intervals);i++{if end<=intervals[i][0]{end=intervals[i][1]count++}}return len(intervals)-count
}

困难

搞清楚左右区间,重叠的条件。
要找出最少删除的数量,也就是找出重叠空间的数量,然后用长度减去即可。


763.划分字母区间

思路

这里提供一种与452.用最少数量的箭引爆气球 (opens new window)、435.无重叠区间 (opens new window)相同的思路。

统计字符串中所有字符的起始和结束位置,记录这些区间(实际上也就是435.无重叠区间 (opens new window)题目里的输入),将区间按左边界从小到大排序,找到边界将区间划分成组,互不重叠。找到的边界就是答案。

官方题解

一想到分割字符串就想到了回溯,但本题其实不用回溯去暴力搜索。

题目要求同一字母最多出现在一个片段中,那么如何把同一个字母的都圈在同一个区间里呢?

如果没有接触过这种题目的话,还挺有难度的。

在遍历的过程中相当于是要找每一个字母的边界,如果找到之前遍历过的所有字母的最远边界,说明这个边界就是分割点了。此时前面出现过所有字母,最远也就到这个边界了。

可以分为如下两步:

统计每一个字符最后出现的位置
从头遍历字符,并更新字符的最远出现下标,如果找到字符最远出现位置下标和当前下标相等了,则找到了分割点

代码


func partitionLabels(s string) []int {var res []int;var marks [26]int;size, left, right := len(s), 0, 0;for i := 0; i < size; i++ {marks[s[i] - 'a'] = i;}for i := 0; i < size; i++ {right = max(right, marks[s[i] - 'a']);if i == right {res = append(res, right - left + 1);left = i + 1;}}return res;
}func max(a, b int) int {if a < b {a = b;}return a;
}

困难

将字符串转换为每个字符的起始位置,终止位置


56. 合并区间

思路

与前面类似但又不同

思路代码

func merge(intervals [][]int) [][]int {res:=[][]int{}sort.Slice(intervals,func (i,j int)bool{return intervals[i][0]<intervals[j][0]})left,right:=intervals[0][0],intervals[0][1]for i:=1;i<len(intervals);i++{if right<intervals[i][0]{res=append(res,[]int{left,right})left=intervals[i][0]right=intervals[i][1]}else{right=max(right,intervals[i][1])}}res=append(res,[]int{left,right})return res}func max(i,j int)int{if i>j{return i}return j
}

今日收获

重叠问题大致分两类
一类是重叠区间问题(箭射气球)
一类是合并区间问题
做法类似但是处理的逻辑不太相同,左右区间排序的选择也有不同。

http://www.hengruixuexiao.com/news/48320.html

相关文章:

  • 南京网站开发公司上海网络推广营销策划方案
  • 广告网站怎么设计制作百度网站认证
  • 自己做网站怎么别人怎么浏览互联网
  • 哈尔滨做设计和网站的公司吗最专业的seo公司
  • 又拍云存储WordPress重庆网页优化seo
  • 一流的上海网站建设公seo1域名查询
  • 网站登录接口怎么做百度关键词搜索引擎
  • 伪静态网站做seo有什么好处
  • 网站开发亿玛酷出名5seo优化总结
  • 自己做一个商城网站怎么做营销型网站建设设计
  • cms建立网站网站开发怎么做
  • excel做公司的小网站制作网页的软件有哪些
  • wordpress添加原创说明武汉seo推广
  • 俄罗斯网站开发如何做好网络宣传工作
  • 湖南网站建设公司网络营销工程师是做什么的
  • 推广公司如何找客户关键词优化的建议
  • 免费科技郑州抖音seo
  • 自己的网站怎么做外链交换平台
  • 中国海外旅游营销网站百度搜索推广平台
  • H5 网站厦门网站搜索引擎优化
  • 电商网站怎样做优化才最合理网站seo收费
  • 网站建设浦东网络营销推广方案范文
  • 公众号怎么做微网站中国最新消息
  • 泊头网站建设服务百度网址提交入口
  • 做网站技术方法有百度一直不收录网站
  • 张店网站制作首选专家百度大搜
  • 深圳平价的专业建站公司天津seo优化
  • 专业电商网站高级seo课程
  • 建立网站公司高质量网站外链平台
  • 做网站玩玩百度文库网页版