問題是 - 給出一個大小爲n和數字S的整數數組。您必須找到總和爲的最小集合的連續整數比S.如果沒有這樣的組存在的數量,輸入0找到其總和大於給定整數的最小整數集合
空間複雜度O(1) 時間複雜-O(n)的
例 -
陣列A = {2時, 5,4,6,3,9,2,17,1}
S = 1 7
輸出= 2
Explanation-
可能的解決方案是: -
{2,5,4,6,3} = 2 + 5 + 4 + 6 + 3 = 20 (> 18)= 5號
{5,4,6,3,9} = 27(> 18)= 5號
{4,6,3,9} = 22(> 18) -4號碼
{6,3,9,2} = 20 = 4個數字
{3,9,2,17} = 4個數字
{9,2,17} = 3倍的數字
{2 ,17} = 2個數字
所以,最小= 2個數字。輸出= 2。
我的嘗試 - 我在O(n^2)時間複雜度中解決了這個問題。有沒有辦法通過迭代陣列來進一步優化它,並將複雜度降至O(n)?
不需要整個代碼。只要基本邏輯的基本思想就足夠了。謝謝。
任何嘗試獨立解決這個問題? – dasblinkenlight
我投票結束這個問題作爲題外話,因爲堆棧溢出不做你的功課。 – David
我用時間複雜度O(n^2)解決了它,但我無法進一步優化它。這個問題可以通過O(n)時間複雜度解決,而不需要使用額外的數組。 –