日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

小和问题

發布時間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小和问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小和問題:在一個數組中,每一個數左邊比當前數小的數累加起來,叫做這個數組的小和,求一個數組的小和

例子:

[1,3,4,2,5]

1-> 1

3-> 1

4 -> 1,3

5 -> 1,3,4,2

1+? ?1+?3+? ?1? ?+1+3+4+2 = 16

此問題可以轉化為當前值右側有幾個比當前值大,比較大的個數 * 當前值 求和,如:

1? -> 3,4,2,5? ?4*1

3? -> 4,5? ? ? ? ?2*2

4? -> 5? ? ? ? ? ?1*4

2? -> 5? ? ? ? ? ?1*2

import syssys.setrecursionlimit(10000)def mergeSort(L,l,r): if l == r:return 0mid = int(l + ((r-l)>>1))return mergeSort(L,l,mid) + mergeSort(L,mid+1,r) + merge(L,l,mid,r)def merge(L,l,m,r):help_ = [0] * (r-l+1)i = 0p1 = lp2 = m + 1res = 0while p1 <= m and p2 <= r:if L[p1] < L[p2]:res += (r-p2+1)*L[p1]help_[i] = L[p1]i +=1p1 +=1else:help_[i] = L[p2]i +=1p2 +=1while p1 <= m:help_[i] = L[p1]i +=1p1 +=1while p2 <= r:help_[i] = L[p2]i +=1p2 +=1for i in range(len(help_)):L[l+i] = help_[i]return resmergeSort([1,3,4,2,5],0,4)

?

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的小和问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。