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

东莞建网站公司动兰州压热搜

东莞建网站公司动,兰州压热搜,德州营销型网站,大数据营销的特征有哪些LeetCode-day37-2940. 找到 Alice 和 Bob 可以相遇的建筑 题目描述示例示例1:示例2: 思路代码 题目描述 给你一个下标从 0 开始的正整数数组 heights ,其中 heights[i] 表示第 i 栋建筑的高度。 如果一个人在建筑 i ,且存在 i &…

LeetCode-day37-2940. 找到 Alice 和 Bob 可以相遇的建筑

  • 题目描述
  • 示例
    • 示例1:
    • 示例2:
  • 思路
  • 代码

题目描述

给你一个下标从 0 开始的正整数数组 heights ,其中 heights[i] 表示第 i 栋建筑的高度。

如果一个人在建筑 i ,且存在 i < j 的建筑 j 满足 heights[i] < heights[j] ,那么这个人可以移动到建筑 j 。

给你另外一个数组 queries ,其中 queries[i] = [ai, bi] 。第 i 个查询中,Alice 在建筑 ai ,Bob 在建筑 bi

请你能返回一个数组 ans ,其中 ans[i] 是第 i 个查询中,Alice 和 Bob 可以相遇的 最左边的建筑 。如果对于查询 i ,Alice 和 Bob 不能相遇,令 ans[i] 为 -1 。

示例

示例1:

输入:heights = [6,4,8,5,2,7], queries = [[0,1],[0,3],[2,4],[3,4],[2,2]]
输出:[2,5,-1,5,2]
解释:第一个查询中,Alice 和 Bob 可以移动到建筑 2 ,因为 heights[0] < heights[2] 且 heights[1] < heights[2] 。
第二个查询中,Alice 和 Bob 可以移动到建筑 5 ,因为 heights[0] < heights[5] 且 heights[3] < heights[5] 。
第三个查询中,Alice 无法与 Bob 相遇,因为 Alice 不能移动到任何其他建筑。
第四个查询中,Alice 和 Bob 可以移动到建筑 5 ,因为 heights[3] < heights[5] 且 heights[4] < heights[5] 。
第五个查询中,Alice 和 Bob 已经在同一栋建筑中。
对于 ans[i] != -1 ,ans[i] 是 Alice 和 Bob 可以相遇的建筑中最左边建筑的下标。
对于 ans[i] == -1 ,不存在 Alice 和 Bob 可以相遇的建筑。

示例2:

输入:heights = [5,3,8,2,6,1,4,6], queries = [[0,7],[3,5],[5,2],[3,0],[1,6]]
输出:[7,6,-1,4,6]
解释:第一个查询中,Alice 可以直接移动到 Bob 的建筑,因为 heights[0] < heights[7] 。
第二个查询中,Alice 和 Bob 可以移动到建筑 6 ,因为 heights[3] < heights[6] 且 heights[5] < heights[6] 。
第三个查询中,Alice 无法与 Bob 相遇,因为 Bob 不能移动到任何其他建筑。
第四个查询中,Alice 和 Bob 可以移动到建筑 4 ,因为 heights[3] < heights[4] 且 heights[0] < heights[4] 。
第五个查询中,Alice 可以直接移动到 Bob 的建筑,因为 heights[1] < heights[6] 。
对于 ans[i] != -1 ,ans[i] 是 Alice 和 Bob 可以相遇的建筑中最左边建筑的下标。
对于 ans[i] == -1 ,不存在 Alice 和 Bob 可以相遇的建筑。

思路

采用最小堆

算法涉及到三个位置,假定 a≤b,按照从左到右的顺序,它们分别是:

  1. a:回答询问时,用其高度 heights[a] 和当前高度 heights[i] 比大小,如果heights[a]<heights[i] 则找到答案。
  2. b:决定了在什么位置把询问加入堆中。注意在遍历到位置 b之前是不能入堆的。在遍历到位置 b 时入堆,这样后续只需要比较 heights[a]<heights[i],如果成立,就间接地说明heights[b]<heights[i] 也成立。并且,由于我们是从左往右遍历 heights 的,当前下标 i 就是 Alice 和Bob 可以相遇的最左边建筑的下标。
  3. 回答询问的位置 i。如果堆顶 heights[a] 小于当前位置的高度heights[i],则回答堆顶询问,并弹出堆顶。

代码

class Solution:def leftmostBuildingQueries(self, heights: List[int], queries: List[List[int]]) -> List[int]:ans = [-1] * len(queries)qs = [[] for _ in heights]for i,(a,b) in enumerate(queries):if a > b:a,b = b,aif a == b or heights[a]<heights[b]:ans[i] = belse:qs[b].append((heights[a],i))h = []for i,x in enumerate(heights):while h and h[0][0] < x:ans[heappop(h)[1]] = ifor q in qs[i]:heappush(h,q)return ans
http://www.mmbaike.com/news/105486.html

相关文章:

  • wordpress 标签链接seo关键字排名优化
  • 芍药居做网站公司nba录像回放
  • 网站开发的高级阶段包括seo实战视频
  • 外贸网站定制开发国际新闻最新消息美国
  • 网站图标怎么设置网站seo诊断技巧
  • 网站开发设计实训实训总结全渠道营销成功案例
  • 自己做网站怎么盈利响应式网站建设
  • 宁波公司网站建立厦门百度快速优化排名
  • 深圳网站建设公司怎么做建站系统cms
  • 长沙建网站公司2023年百度小说风云榜
  • 政府网站建设流程游戏推广公司靠谱吗
  • 网站空间模板5118关键词查询工具
  • 做免费外贸网站百度营销搜索推广
  • 农村建设设计网站优化一下
  • 宁国市有做网站域名批量注册查询
  • 怎么做整人点不完的网站百度引流推广怎么收费
  • 怎么用抓爬工具做网站东莞商城网站建设
  • 网站 伪静态北京营销公司排行榜
  • 物流公司做网站百度竞价点击价格
  • 企业网站收录自媒体服务平台
  • 浙江建设特种证书查询seo搜索引擎优化期末及答案
  • 携程旅行的网站建设友链交换有什么作用
  • 政和网站建设如何设置友情链接
  • 濮阳做网站做的好的公司济南百度竞价
  • 安新网站建设北京百度seo公司
  • 南昌房产网官方网站十大营销手段
  • 电商网站的建设的主要目的百度优化关键词
  • 网站上的个人词条怎么做的太原seo团队
  • 布吉做棋牌网站建设哪家服务好优化推广服务
  • 网站框架包括哪些专业seo服务商