Lintcode89 K Sum solution 題解

【題目描述】


Givenndistinct positive integers, integerk(k<=n) and a numbertarget.

Findknumbers where sum is target. Calculate how many solutions there are?

給定n個不同的正整數,整數k(k < = n)以及一個目標數字。

在這n個數裏面找出K個數,使得這K個數的和等於目標數字,求問有多少種方案?

【題目鏈接】

www.lintcode.com/en/problem/k-sum/

【題目解析】

1. 如果你從左往右按列計算,每一列會被重複地加總,就會有重複計算。我們可以想象一下,len = 0爲上表,len = 1爲下表。

現在我們只有一個表,就是下面這個(因爲第一個維度被取消了),現在如果你從左往右計算,被sum的區域會被填掉,覆蓋

len = 0 那張表留下的值,下一個值的計算就不會準確了。

2. 或者如果你逐行計算,也是不可以的。因爲你也是把生成D[j][t](在圖裏寫的是D[i][j])的被sum的區域覆蓋,也會造成結果不準確。

3. 所以,只要我們逐列計算,並且順序是從右往左,即使我們只有一個二維表,我們的被sum區域也可以保持潔淨,從空間角度來想,

就相當於從len=0那張表中取值。

【參考答案】

www.jiuzhang.com/solutions/k-sum/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章