day30 | 贪心算法

终于到了重叠区间的部分,这部分我记得之前笔试的时候做到过,不过有些变形没做出来。看了下题解,看上去是之前的做法弄错了理解不对。 我是按照 star 和 end 进行了一个排序,实际上根据贪心直接根据前面进行排序就可以了,end 的部分可以手动维护一个有序的数列

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

每次更新最短的 end 边界

if points[i-1][1]<points[i][0]:
  count+=1
else:
	points[i][1]=min(points[i][1],points[i-1][1])

435. 无重叠区间

if intervals[i-1][1]<=intervals[i][0]:
  continue
  # end 尽可能地小
intervals[i][1]=min(intervals[i][1],intervals[i-1][1])
count+=1

`同样,但是区分一下边界的情况和 count +1的情况

763.划分字母区间

可以记录每个字母的start和 end 计入然后求出一个无重叠区间

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务