时间紧,没有代码
标签 :
做法
对于每个 ,我们暴力向左右查找 个 的数,再用乘法原理计算即可。
例如,当 , 时,对于 ,我们的查找过程如下:
找到
从 向 计算。
对于右端点 ,可选的左端点只有 。 加上
对于右端点 ,可选的左端点有 。 加上
因此答案为
时间复杂度 。
正解
回顾做法 ,瓶颈在于 「暴力向左右查找」。
考虑维护 「双向链表」。
我们从小到大处理每个数,像原来一样查找, 但查完后删除这个数,因为这个数不会再被用到。时间复杂度 。注意计算时相互匹配,使得匹配到的两个数在链表上距离为 ,然后统计答案。