我得到了一个数组a[n][2]
,其中n
的最大值为10^5
。有n个科目和n个学生。全部编号为1、2,...,n。
a[i][0]
和a[i][1]
(1 <= i <= n
)表示在第i个科目中,从a[i][0]
到a[i][1]
的所有学生都通过了考试,其余的则没有通过t。我应该找到每个学生通过的科目数量。
例如,
n=5 and a = [ [1,3], [1,3], [1,5], [1,5], [1,5] ]
应提供输出
[5, 5, 5, 3, 3]
(2)
n = 10, a = [ [1,10], [1,10], [1,10], [3,5], [1,10], ..., [1,10] ]
预期答案应该是
[ 9, 9, 10, 10, 10, 9, 9, 9, 9, 9]
答案 0 :(得分:2)
不是很了解您的代码,这是另一种方法。 这类似于间隔问题。让我们举个例子:
我们首先将尺寸数组设为no。的主题数+ 1(为了简化计算)。
1 2 3 4 5 6
+1
添加到起点,并将-1
添加到终点+ 1 th 位置。数组表示形式:(在上述整个过程之后)。
1 2 3 4 5 6
+1 -1 [1,3]
+1 -1 [1,3]
+1 -1 [1,5]
+1 -1 [1,5]
+1 -1 [1,5]
总结如下:
1 2 3 4 5 6
+1 -1 [1,3]
+1 -1 [1,3]
+1 -1 [1,5]
+1 -1 [1,5]
+1 -1 [1,5]
5 5 5 3 3 0(not considered anyway)