數控加工中心解密

2021-10-25 09:54:34 字數 1004 閱讀 6656

數控加工中心解密給定 n 個不同的正整數,整數 k(k <= n)以及乙個目標數字 target。

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

樣例1輸入:

list = [1,2,3,4]

k = 2

target = 5

輸出: 2

說明: 1 + 4 = 2 + 3 = 5

樣例2輸入:

list = [1,2,3,4,5]

k = 3

target = 6

輸出: 1

說明: 只有這一種方案。 1 + 2 + 3 = 6

演算法:dp

如果沒有k的約束。我們可以發現,這題就可以轉化為揹包問題。利用n個正整數達到目標target。那麼有了k的約束之後,我們需要用額外的一維來維護使用的數字。所以約定狀態如下,用dp[i][j][k]表示前ii個數里選j個和為k的方案數。

假定dp[i][j][k]之前的方案數都已知,考慮dp[i][j][k]的情況。

dp[i][j][k]可以由dp[i−1][j−1][k−a[i−1]]的狀態取​a[i-1]​得到。

dp[i][j][k]也可以由dp[i−1][j][k]直接得到,即不取​a[i-1]​。

最後返回f[n][k][target]即可。

複雜度分析

時間複雜度o(n∗k∗target)o(n∗k∗target)

空間複雜度o(n∗k∗target)o(n∗k∗target)

時間複雜度與空間複雜度是等價的。

在這裡,空間複雜度可以用滾動陣列優化。

public class solution

for (int i = 1; i <= n; i++)

f[i][j][t] += f[i - 1][j][t];

} // for t

} // for j

} // for i

return f[n][k][target];

}

數控工具機解密

fn 1,2,3,4,5 print 1,2,3,4,5 fn 1 2 3,4,5 print 1,2,3,4,5 fn 1,2 3,4 5 print 1,2,3,4,5 fn 1 2 3 4 5 print 1,2,3,4,5 複製 柯理化函式的實現 對求和函式做curry化 let f1 cu...

數控工具機解密

webpack 的 loader 本質上其實就是乙個函式,數控工具機解密我們可以在這個函式內部,根據正則匹配出我們想刪除的字串,對其進行替換。自定義 loaders ignore console log loader.js 很簡單,如下 const reg console.log gmodule.e...

UG程式設計數控加工的優點

先進的數控加工技術是乙個國家製造業發達的標誌,利用數控加工技術可以加工很多 普通工具機不能加工的複雜曲面零件和模具,並且加工的穩定性和精度都會得到很大的保證。總體說,數控加工與傳統加工相比具有以下優點。1 加工效率高。利用數位化的控制手段可以加工複雜的曲面,並且加工過程是由計 算機控制的,所以零件的...