問題描述
在乙個陣列中, 每乙個數左邊比當前數小的數累加起來, 叫做這個陣列的小和。 求乙個陣列的小和。
樣例[1,3,4,2,5]
1左邊比1小的數, 沒有;
3左邊比3小的數, 1;
4左邊比4小的數, 1、 3;
2左邊比2小的數, 1;
5左邊比5小的數, 1、 3、 4、 2;
所以小和為1+1+3+1+1+3+4+2=16
思路:歸併排序
#include
using
namespace std;
intmerge
(int array,
int l,
int mid,
int r)
while
(p1 <= mid)
while
(p2 <= r)
for(i =
0; i <= r - l; i++
)return res;
}int
mergesort
(int array,
int l,
int r)
intsmallsum
(int array,
int length)
intmain()
;int length =7;
int s =
smallsum
(array, length)
; cout << s
}
歸併排序 小和問題
public class mergesort sortprocess arr,0,arr.length 1 遞迴 public static void sortprocess int arr,int l,int r int mid l r l 1 sortprocess arr,l,mid t n ...
小和問題 歸併排序
在乙個陣列中,每乙個數左邊比當前數小的數累加起來,叫做這個陣列的小和。例子 輸入 1,3,4,2,5 輸出 16 1左邊比1小的數,沒有 3左邊比3小的數,1 4左邊比4小的數,1 3 2左邊比2小的數,1 5左邊比5小的數,1 3 4 2 所以小和為1 1 3 1 1 3 4 2 16實現的基本原...
小和問題(歸併排序)
在乙個陣列中,每乙個數左邊比當前數小的數累加起來,叫做這個陣列的小和。求乙個陣列的小和。描述 1,3,2,51,5 1左邊比1小的數 0 3左邊比3小的數 1 2左邊比2小的數 1 51左邊比51小的數 2,3,1 5左邊比5小的數 2,3,1 所以小和為0 1 1 2 3 1 2 3 1 14 解...