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

wordpress 新闻采集站企业网络宣传推广方案

wordpress 新闻采集站,企业网络宣传推广方案,为第三方网站做推广,网站设计培训学校有哪些Leetcode 3479. Fruits Into Baskets III 1. 解题思路2. 代码实现 题目链接:3479. Fruits Into Baskets III 1. 解题思路 这一题思路本质上就是考察每一个水果被考察时找到第一个满足条件且未被使用的basket。 因此,我们只需要将basket按照其capacit…
  • Leetcode 3479. Fruits Into Baskets III
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3479. Fruits Into Baskets III

1. 解题思路

这一题思路本质上就是考察每一个水果被考察时找到第一个满足条件且未被使用的basket。

因此,我们只需要将basket按照其capacity进行排序,此时,考察每一个水果时,我们用二分法即可快速找到某一个坐标idx满足其后任意一个箱子都可以用于盛放该水果。此时,我们就要从对应的这些篮子当中找到其原始的坐标最小的位置即可。而这就是一个典型的segment tree的问题了。

对于segment tree,网上已经有不少相关的介绍了,我自己也写过一篇小文章作为备忘(经典算法:Segment Tree),因此这里就不过多展开了,有兴趣的读者可以自行去了解一下。

2. 代码实现

给出python代码实现如下:

class SegmentTree:def __init__(self, arr):self.length = len(arr)self.tree = self.build(arr)def feature_func(self, *args):return min(args)def build(self, arr):n = len(arr)tree = [0 for _ in range(2*n)]for i in range(n):tree[i+n] = arr[i]for i in range(n-1, 0, -1):tree[i] = self.feature_func(tree[2*i], tree[2*i+1])return treedef update(self, idx, val):idx = idx + self.lengthself.tree[idx] = valwhile idx > 1:self.tree[idx // 2] = self.feature_func(self.tree[idx], self.tree[idx ^ 1])idx = idx // 2returndef query(self, lb, rb):lb += self.length rb += self.lengthnodes = []while lb < rb:if lb % 2 == 1:nodes.append(self.tree[lb])lb += 1if rb % 2 == 0:nodes.append(self.tree[rb])rb -= 1lb = lb // 2rb = rb // 2if lb == rb:nodes.append(self.tree[rb])return self.feature_func(*nodes)class Solution:def numOfUnplacedFruits(self, fruits: List[int], baskets: List[int]) -> int:n = len(fruits)ordered_baskets = sorted([(cap, idx) for idx, cap in enumerate(baskets)])ordered_baskets_capacity = [x[0] for x in ordered_baskets]ordered_baskets_index = [x[1] for x in ordered_baskets]segment_tree = SegmentTree(ordered_baskets_index)ans = 0for fruit in fruits:idx = bisect.bisect_left(ordered_baskets_capacity, fruit)if idx >= n:ans += 1continueleft_most_avaliable = segment_tree.query(idx, n-1)if left_most_avaliable >= n:ans += 1continuebasket = (baskets[left_most_avaliable], left_most_avaliable)idx = bisect.bisect_left(ordered_baskets, basket)segment_tree.update(idx, n)return ans

提交代码评测得到:耗时2398ms,占用内存43.9MB。

http://www.dtcms.com/wzjs/276751.html

相关文章:

  • 设计师新手接单网站网页设计个人主页
  • 做电影网站需要多大空间营销托管全网营销推广
  • 开发网站放大文字功能怎么写网络营销优化
  • 要找人做公司网站应该怎么做漯河seo公司
  • 邯郸哪里做网站最佳搜索引擎
  • 怎么做课题组网站可以免费推广的平台
  • wordpress版本文件夹seo综合查询怎么用的
  • 海纳百川网站建设做任务赚佣金的平台
  • 光谷网站建设长沙seo网络推广
  • 郑州个人网站建设宁波正规seo推广公司
  • 网站开发字体百度关键词搜索查询
  • 东莞网站关键词优化怎么做seo网站优化流程
  • 用别人网站名做长尾关键词社群营销案例
  • 怎么自己建网站赚钱旺道seo怎么优化网站
  • 高校教学网站建设软文代写费用
  • 做网站seo赚钱吗网站推广平台排行
  • 平台网站可以做第三方检测报告深圳营销型网站建设
  • 桂林生活网招聘信息网杭州seo论坛
  • 做网站怎么购买主机百度如何快速收录网站
  • 做消费信贷网站价格app开发用什么软件
  • 天猫优惠券网站怎么做的seo公司优化
  • 济南网站建设网络公司郑州网站优化培训
  • 网站建设广告费 科目推广宣传文案
  • 模板网站下载广州网站设计实力乐云seo
  • 酒店网站建设论文百度网页游戏
  • 短视频直播运营版源码下载关键词seo深圳
  • 武汉网站建设知名 乐云践新seo系统源码
  • 建设外贸独立网站电商平台排行榜
  • 龙岗网站建设 公司推广网站是怎么建立起来的
  • 玉溪网站建设网站搭建软件