A60986. 在一个数组中,如果两个元素 a[i] 和 a[j] 满足 i < j 且 a[i] > a[j] ,则 a[i] 和 a[j] 是一个逆 序对。 下面代码可以正确统计数组 a 区间 [l,r] 内的逆序对总数。1 cnt = 0
判断题
知识点
题目描述
在一个数组中,如果两个元素 a[i] 和 a[j] 满足 i < j 且 a[i] > a[j] ,则 a[i] 和 a[j] 是一个逆 序对。 下面代码可以正确统计数组 a 区间 [l,r] 内的逆序对总数。
1 cnt = 0
2
3 def merge_count(a, l, m, r):
4
5 global cnt
6 i = l
7 j = m + 1
8
9 while i <= m and j <= r:
10 if a[i] <= a[j]:
11 i += 1
12 else:
13 cnt += (m - i + 1)
14 j += 1
15
16 if __name__ == "__main__":
17 a = [2, 4, 1, 3]
18 merge_count(a, 0, 1, 3)
19 print(f"跨区间逆序对数量:{cnt}")选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员