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

web网站开发与实现/什么是口碑营销

web网站开发与实现,什么是口碑营销,seo优化常识,制作网页超链接怎么弄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.whsansanxincailiao.cn/news/32041380.html

相关文章:

  • 做网站专题模板/武安百度seo
  • 惠水网站建设/专业网络推广公司排名
  • vps运行iis网站 需要输入账号和密码/搜索引擎优化概述
  • 网站里的课程配图怎么做/深圳网络推广培训学校
  • 在家自己做网站/广东疫情最新消息今天
  • icp备案信息查询/seo技巧优化
  • 咨询聊城网站建设/最新新闻消息
  • 火车票网站建设多少钱/sem推广竞价托管
  • 企业网站如何制作/百度搜索排名靠前
  • 仁怀网站建设/优化推广什么意思
  • 网络营销型企业网站案例/关键词提取工具
  • 塘厦网站建设/饥饿营销案例
  • 互联网上网络营销的推广/关键词优化怎么做
  • 网站前台的功能模块/网站推广怎么推广
  • 好文案网站/网络营销心得体会
  • 园区网互联及网站建设项目/百度端口开户推广
  • 深圳企业网站建设服务哪家公司好/百度查询最火的关键词
  • web前端开发案例教程代码/seo推广工具
  • 日照网络推广/优化网站结构一般包括
  • 南京我爱我家网站建设新村二手房/设计师经常用的网站
  • 做网站销售说辞/百度投放广告联系谁
  • 阳江网络问政平台回复查询/宁波seo关键词培训
  • 做网站付款流程/外贸营销网站建设
  • 巩义网站建设托管/上海seo网站优化
  • 云服务器做网站要备案吗/系统优化
  • 网站中有一个非常著名的原则/百度网盘下载
  • 手机网址是什么/seo关键词优化推广哪家好
  • 专业制作行驶证/优化设计五年级上册语文答案
  • 公司网站工程案例怎么做/hyein seo是什么牌子
  • 临安建办网站/seo网站推广教程