【发布时间】:2012-12-31 05:08:58
【问题描述】:
问题如下:-
给你 N 头不同大象的寿命,用一对整数表示。
例如。 [5,10] [6,15] [2,7] 意思是,一头大象从 5 年到 10 年。第二只从 6 年到 15 年,依此类推..
你可以假设一头大象最多只能活 M 年。 (不是问题的一部分,但我们可能需要它来表示算法的复杂性。)
根据这些数据,找出最大数量的大象生活的年份。 随意解决关系。
我已经尝试了几种方法来解决这个问题,但似乎没有什么比简单解决方案的复杂性更重要的了。天真的解决方案是:-
1. Maintain an array(call it ctr).
2. For every set you encounter,
increment all values of ctr in that range.
3. Once you have traversed all sets,
find the index with the highest value in ctr.
很容易看出复杂度将是 O(N*M)。
谁能提供更好的解决方案?
另一个问题是:是否有一种数据结构可以在 O(1) 时间内更改一系列值?在数组中,要修改 k 个元素,显然需要 O(k) 时间。有更好的吗?
【问题讨论】:
标签: algorithm computational-geometry