当前位置: 首页 > 知识库问答 >
问题:

面试-根据开始值和结束值进行排序

李鹏
2023-03-14

我在一次采访中得到了这个问题。有一个与起始值和结束值关联的对象数组。与每个对象关联的计数是具有较大开始时间和较小结束时间的其他对象的数量。所以我必须找到每个物体的计数。

我想出了O(n^2)解决方案,首先我对开始值进行排序,然后用下一个对象的结束值检查每个对象的结束值以获得计数。有更好的算法来解决这个问题吗?

共有1个答案

谷梁博易
2023-03-14

我没有找到一个简单的方法来解决它,也许有点复杂。

我想出了一个O(nlogn)解决方案。像你的解决方案一样,首先我按start值排序,但按降序排序。然后申请一个新的数组a[]保持end值的出现次数(即,当遇到一个对象(start, end)时,使a[end]加1)。然后遍历对象数组,对于对象i(start, end),我们只需要添加和(a[i]|0

 类似资料:
  • 边走边学Java(Python背景)。简单的单词计数程序在Java7代码(不能用J8!)。 我有一个单词的哈希图:计数对。现在我需要按计数(递减顺序)排序,并打破按字母顺序使用word的联系。 我正在寻找对这个想法的反馈: 遍历HashMap中的映射项(me) 使用me.getkey=K和me.getvalue=v new map.entry reverse_me=(V,K){不确定此语法} 将r

  • 我有一个假设 我的目的是以循环的方式基于来订购它。 输入: SortedList:

  • 假设我有一个元组列表,如: 如何根据元组中值的唯一出现对此元组列表进行排序? 例如,由于数字3只出现在元组中,并且是元组的第一个值,因此它应该是列表中的第一个条目。该条目后面跟着,因为的第二个值(2)出现在的第一个值中。最后,列表中的最后一个条目应该是,因为它的第一个值与的最后一个值匹配。 预期结果: 如果您需要更多信息,请告诉我。

  • 我有一个数据帧(df),它具有特定值(在本例中为“货币”)的开始和结束日期。我需要将其与另一个数据帧(tbl)合并,并根据第一个DF的开始/结束日期填写空白货币行。NULL表示没有结束日期,所以一切都在继续。在这种情况下,2020年11月1日之后的所有费用均为美元。因此,来自SQL的数据为空。 这就是我需要的 df_合并是我需要的最终外观。第二个问题-如果我没有第二个数据帧(tbl)来合并怎么办。

  • 问题内容: 如何使用树的值而不是键对树图进行排序? 问题答案: 您不能这样做,因为TreeMap的比较器仅针对键运行,例如,参见this 构造函数。 无论如何,您可以使用多个Collections,使用TreeMap(或HashMap)通过键查找元素,并具有SortedSet来迭代值。

  • 我目前有一个应用程序,可以显示1.5公里半径内附近的医院,它看起来是这样的: 我遇到的麻烦是,我不知道如何根据他们从最低到最高的计算距离来排序卡片。 我创建了一个来存储计算的距离列表,并用对其进行排序。 我如何确保小部件将遵循排序的距离值的顺序?