贪心算法part04
创始人
2024-11-03 19:34:21
0

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

在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。

一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,所需的弓箭的最小数量。

给你一个数组 points ,其中 points [i] = [xstart,xend] ,返回引爆所有气球所必须射出的最小弓箭数。

class Solution:     def findMinArrowShots(self, points: List[List[int]]) -> int:         if len(points) == 0: return 0         points.sort(key=lambda x: x[0])         result = 1         for i in range(1, len(points)):             if points[i][0] > points[i - 1][1]: # 气球i和气球i-1不挨着,注意这里不是>=                 result += 1                  else:                 points[i][1] = min(points[i - 1][1], points[i][1]) # 更新重叠气球最小右边界         return result 

435 无重叠区间

给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。

注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。

class Solution:     def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:         if not intervals:             return 0                  intervals.sort(key=lambda x: x[0])  # 按照左边界升序排序         count = 0  # 记录重叠区间数量                  for i in range(1, len(intervals)):             if intervals[i][0] < intervals[i - 1][1]:  # 存在重叠区间                 intervals[i][1] = min(intervals[i - 1][1], intervals[i][1])  # 更新重叠区间的右边界                 count += 1                  return count  

763 划分字母区间

字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。

class Solution:     def partitionLabels(self, s: str) -> List[int]:         last_occurrence = {}  # 存储每个字符最后出现的位置         for i, ch in enumerate(s):             last_occurrence[ch] = i          result = []         start = 0         end = 0         for i, ch in enumerate(s):             end = max(end, last_occurrence[ch])  # 找到当前字符出现的最远位置             if i == end:  # 如果当前位置是最远位置,表示可以分割出一个区间                 result.append(end - start + 1)                 start = i + 1          return result           

相关内容

热门资讯

透视透视(wPK)微扑克辅助挂... 透视透视(wPK)微扑克辅助挂(透视)详细辅助插件教程(都是真的是有挂)1、微扑克辅助挂系统规律教程...
透视最新(AAPoker)aa... 透视最新(AAPoker)aa扑克辅助(透视)好像真的是有挂(详细辅助必赢教程)1、打开软件启动之后...
透视科技!智星德州菠萝辅助器,... 透视科技!智星德州菠萝辅助器,(德州wepower)其实真的有挂(详细辅助透明教程)所有人都在同一条...
透视安装(WPK)wpk有透视... 透视安装(WPK)wpk有透视辅助(透视)详细辅助科技教程(原来真的有挂);1.wpk有透视辅助 a...
透视透视(AAPoKER)aa... 透视透视(AAPoKER)aa扑克辅助(透视)好像是真的有挂(详细辅助爆料教程);1、超多福利:超高...
透视透视!德州AI智能辅助机器... 透视透视!德州AI智能辅助机器人,(德州之星)总是存在有挂(详细辅助分享教程)1、全新机制【德州AI...
透视免费(wpK)wpk有辅助... 透视免费(wpK)wpk有辅助挂(透视)详细辅助攻略教程(切实是真的有挂);亲,关键说明,wpk有辅...
透视存在!德扑之星有作弊,(云... 透视存在!德扑之星有作弊,(云扑克德州)其实真的是有挂(详细辅助科技教程);该软件可以轻松地帮助玩家...
透视透视(德州aa扑克)aap... 透视透视(德州aa扑克)aapoker辅助工具(透视)本来存在有挂(详细辅助透明教程)aapoker...
透视透视!德扑之星猫腻,(德州... 透视透视!德扑之星猫腻,(德州app)都是存在有挂(详细辅助详细教程)1、不需要AI权限,帮助你快速...