494 目標和 力扣

2021-09-25 03:42:46 字數 551 閱讀 3162

題意理解

給定一陣列,在每個數前增加+,-符號構成表示式,求和等於s的數量。

問題分析

動規狀態量是前i個數字,和等於j的數量。

狀態轉移方程是前i個數字,和等於j的數量等於前i-1個數字,和等於j-當前數字的數量 + 前i-1個數字,和等於j+當前數字的數量。

其他鏈結

int findtargetsumways(vector& nums, int s) 

int len = nums.size(); //陣列長度

vector> dp(len + 1, vector(2 * sum + 1, 0)); //dp[i,j]表示前i個元素和為j-sum的數量,這是將-sum,sum化為0,2*sum

dp[0][sum] = 1; //預製0個元素,和為0(對應j=sum)的數量為1.

for (int i = 1; i != len + 1; i ++)

}return dp[len][s + sum]; //取出和等於s的數量

}

494 目標和 golang 動態規劃

494.目標和 給定乙個非負整數陣列,a1,a2,an,和乙個目標數,s。現在你有兩個符號 和 對於陣列中的任意乙個整數,你都可以從 或 中選擇乙個符號新增在前面。返回可以使最終陣列和為目標數 s 的所有新增符號的方法數。示例 1 輸入 nums 1,1,1,1,1 s 3 輸出 5 解釋 1 1 ...

01揹包3 目標和494

給定乙個非負整數陣列,a1,a2,an,和乙個目標數,s。現在你有兩個符號 和 對於陣列中的任意乙個整數,你都可以從 或 中選擇乙個符號新增在前面。返回可以使最終陣列和為目標數 s 的所有新增符號的方法數。這個題的選擇就兩種,做加法或者做減法 不能選擇不加 所以其實是乙個動態規劃.又因為需要達到s,...

leetcode 494 目標和(DP 動態規劃)

給定乙個非負整數陣列,a1,a2,an,和乙個目標數,s。現在你有兩個符號 和 對於陣列中的任意乙個整數,你都可以從 或 中選擇乙個符號新增在前面。返回可以使最終陣列和為目標數 s 的所有新增符號的方法數。本題是典型的 動態規劃 問題。設陣列的長度為n,當陣列的前n 1項 nums 0 到nums ...