简介
面试文远知行,被问到了这道题,牛客程序员代码面试指南: 计算数组的小和
题目描述如下:
数组小和的定义如下:
例如,数组
s = [1, 3, 5, 2, 4, 6]在
s[0]的左边小于或等于s[0]的数的和为 0 0 0在
s[1]的左边小于或等于s[1]的数的和为 1 1 1在
s[2]的左边小于或等于s[2]的数的和为 1 + 3 = 4 1+3=4 1+3=4在
s[3]的左边小于或等于s[3]的数的和为 1 1 1在
s[4]的左边小于或等于s[4]的数的和为 1 + 3 + 2 = 6 1+3+2=6 1+3+2=6在
s[5]的左边小于或等于s[5]的数的和为 1 + 3 + 5 + 2 + 4 = 15 1+3+5+2+4=15 1+3+<

本文介绍了如何利用树状数组和归并排序解决计算数组小和的问题。在面试中,这个问题被提出,要求时间复杂度为O(nlogn),空间复杂度为O(n)。解决方案包括先进行排序和离散化,然后通过逆序遍历数组,利用树状数组统计每个元素被计算的次数,最后通过归并排序过程直接统计小和。
最低0.47元/天 解锁文章
349

被折叠的 条评论
为什么被折叠?



