2017-06-12 77 views
-2

我們給出了一個數組,我們被要求從每個元素開始查找每個大小大於1的子數組的最大元素的總和的數組。例如,如果數組是[1,2,3,4],那麼結果應該是[9,7,4,0]。我們被要求只查找大小> 1的每個子數組的最大元素。因此對於1,它是max(1,2)+ max(1,2,3)+ max(1,2,3,4),其中是9.給定的數組不需要排序。如何解決這個問題。提前致謝。從數組中的每個元素開始的所有子樹中最大元素的總和

回答

0

創建結果數組。對輸入數組進行排序,然後逐個向後遍歷2個元素,將每次迭代的兩個元素的總和追加到結果數組中。這是解決這個問題的最快方法。我不會給你寫確切的答案,但這應該足以幫助你。

+0

例如,如果給定的輸入數組是2,1,6,4,則回答是[2 + 6 + 6,6 + 6,6,0],即[14,12,6,0]。但是如果我們對這個數組進行排序,它將變成1,2,4,6,從你的方法中得出結果[max(1,2)+ 10,max(2,4)+ 6,6,0)。這是[12,10,6,0]; –

相關問題