# Leetcode 1508. Range Sum of Sorted Subarray Sums
給定nums由n正整數組成的數組。您計算了該數組中所有非空連續子數組的總和,然後以非降序對其進行排序,再計算其索引從left到right的總和,並且總和可能很大,所以將其對10^9+7取modulo。
## 想法
比賽時最簡單的想法,因為題目要求的n最大只有10^3,所以可以直接計算所有的子數組的大小,排序後再從left一路加到right再對10^9+7取餘數,就可以暴力的解決。
以下提供兩個可以優化的方向,一個是在取子數組的時候,思考有沒有技巧可以使用,另一個是思考看看有沒有數學解。
程式碼:
```
def rangeSum(self, nums: List[int], n: int, left: int, right: int) -> int:
list1 = []
for i in range(len(nums)):
tag = nums[i]
list1.append(tag)
for j in range(i+1,len(nums)):
tag+=nums[j]
list1.append(tag)
list1.sort()
ans = 0
for i in range(left-1,right):
ans+=list1[i]
return ans%1000000007
```