亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

494. Target Sum

2019-11-11 04:18:12
字體:
來源:轉載
供稿:網友

You are given a list of non-negative integers, a1, a2, ..., an, and a target, S. Now you have 2 symbols + and -. For each integer, you should choose one from + and - as its new symbol.

Find out how many ways to assign symbols to make sum of integers equal to target S.

Example 1:

Input: nums is [1, 1, 1, 1, 1], S is 3. Output: 5Explanation: -1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3There are 5 ways to assign symbols to make the sum of nums be target 3.

Note:

The length of the given array is positive and will not exceed 20.The sum of elements in the given array will not exceed 1000.Your output answer is guaranteed to be fitted in a 32-bit integer.

Subscribe to see which companies asked this question.

【問題分析】

1、該問題求解數組中數字只和等于目標值的方案個數,每個數字的符號可以為正或負(減整數等于加負數)。

2、該問題和矩陣鏈乘很相似,是典型的動態規劃問題

3、舉例說明: nums = {1,2,3,4,5}, target=3, 一種可行的方案是+1-2+3-4+5 = 3

     該方案中數組元素可以分為兩組,一組是數字符號為正(P={1,3,5}),另一組數字符號為負(N={2,4})

     因此: sum(1,3,5) - sum(2,4) = target

              sum(1,3,5) - sum(2,4) + sum(1,3,5) + sum(2,4) = target + sum(1,3,5) + sum(2,4)

              2sum(1,3,5) = target + sum(1,3,5) + sum(2,4)

              2sum(P) = target + sum(nums)

              sum(P) = (target + sum(nums)) / 2

     由于target和sum(nums)是固定值,因此原始問題轉化為求解nums中子集的和等于sum(P)的方案個數問題

4、求解nums中子集合只和為sum(P)的方案個數(nums中所有元素都是非負)

      該問題可以通過動態規劃算法求解

      舉例說明:給定集合nums={1,2,3,4,5}, 求解子集,使子集中元素之和等于9 = new_target = sum(P) = (target+sum(nums))/2

              定義dp[10]數組, dp[10] = {1,0,0,0,0,0,0,0,0,0}

              dp[i]表示子集合元素之和等于當前目標值的方案個數, 當前目標值等于9減去當前元素值

              當前元素等于1時,dp[9] = dp[9] + dp[9-1]

                                            dp[8] = dp[8] + dp[8-1]

                                            ...

                                            dp[1] = dp[1] + dp[1-1]

              當前元素等于2時,dp[9] = dp[9] + dp[9-2]

                                            dp[8] = dp[8] + dp[8-2]

                                            ...

                                            dp[2] = dp[2] + dp[2-2]

              當前元素等于3時,dp[9] = dp[9] + dp[9-3]

                                            dp[8] = dp[8] + dp[8-3]

                                            ...

                                            dp[3] = dp[3] + dp[3-3]

              當前元素等于4時,

                                            ...

              當前元素等于5時,

                                           ...

                                           dp[5] = dp[5] + dp[5-5]

             最后返回dp[9]即是所求的解

【AC代碼】

class Solution {    public:        int findTargetSumWays(std::vector<int>& nums, int S) {            int sum = std::accumulate(nums.begin(), nums.end(), 0);            return sum < S || (S + sum) & 1 ? 0 : subsetSum(nums, (S+sum) >> 1);        }        int subsetSum(std::vector<int>& nums, int s) {            int dp[s+1];            memset(dp, 0, sizeof(int)*(s+1));            dp[0] = 1;            for(int n: nums) {                for (int i = s; i >= n; --i) {                    dp[i] += dp[i-n];                }            }            return dp[s];        }};

參考內容:

https://discuss.leetcode.com/topic/76243/java-15-ms-c-3-ms-o-ns-iterative-dp-solution-using-subset-sum-with-explanation/2

https://discuss.leetcode.com/topic/63049/my-simple-c-dp-code-with-comments/2


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产99国产精品澳门| 亚洲精品aⅴ中文字幕乱码| 久久久久久69| 欧美在线亚洲在线| 一区二区三区在线播放欧美| 日韩中文字幕在线| 黑丝美女久久久| 日韩精品视频在线| 国产欧美日韩亚洲精品| 亚洲高清一二三区| 国产精品电影久久久久电影网| 国产欧美日韩综合精品| 91在线看www| 色婷婷av一区二区三区久久| 亚洲国产毛片完整版| 国内精品免费午夜毛片| 久久免费精品视频| 亚洲japanese制服美女| 欧美性xxxxx极品娇小| 中文字幕av一区| 国产成人黄色av| 日韩成人网免费视频| 国产a∨精品一区二区三区不卡| 国产精品久久久久久久电影| 日韩女优在线播放| 最新中文字幕亚洲| 欧美主播福利视频| 国产精品一区二区久久久| 欧美精品电影免费在线观看| 日韩中文综合网| 久久亚洲春色中文字幕| 久久久精品久久久久| 欧美中文在线视频| 亚洲国产精品成人va在线观看| 国产精品色悠悠| 亚洲国产日韩欧美在线99| 欧洲亚洲免费在线| 视频在线观看一区二区| 亚洲欧洲午夜一线一品| 亚洲人a成www在线影院| 粗暴蹂躏中文一区二区三区| 国产一区二区视频在线观看| 国产又爽又黄的激情精品视频| 韩国19禁主播vip福利视频| 久久国产视频网站| 国产精品www色诱视频| 欧美在线播放视频| 91中文字幕在线观看| 欧美日韩国产一区二区| 欧美成年人视频| 精品视频在线播放免| 日本精品中文字幕| 97精品一区二区三区| 日韩69视频在线观看| 亚洲欧美日韩中文在线| 欧美激情国产高清| 亚洲一区美女视频在线观看免费| 久久综合伊人77777蜜臀| 精品亚洲男同gayvideo网站| 成人国产精品一区二区| 亚洲成人国产精品| 日本精品久久久| 久久天天躁狠狠躁夜夜爽蜜月| 欧美寡妇偷汉性猛交| 欧美在线播放视频| 少妇精69xxtheporn| 国产在线观看不卡| 亚洲欧美国产精品专区久久| 亚洲高清不卡av| 国产成人久久久精品一区| 久久久久久12| 精品福利在线观看| 精品视频在线播放色网色视频| 日韩在线观看网址| 国产精品第100页| 热久久这里只有精品| 欧美俄罗斯性视频| 成人国产精品久久久久久亚洲| 日本免费一区二区三区视频观看| 中文字幕一精品亚洲无线一区| 久久91亚洲精品中文字幕| 日韩精品中文字| 精品久久久999| 欧美视频一区二区三区…| 久久99国产精品自在自在app| 亚洲热线99精品视频| 97久久伊人激情网| 2018国产精品视频| 91精品国产91久久久久久| 国产精品无av码在线观看| 狠狠躁夜夜躁人人爽天天天天97| 国产精品自产拍高潮在线观看| 国外成人在线直播| 热草久综合在线| 欧美激情精品久久久久| 国产999在线| 国产视频久久网| 欧美在线国产精品| 亚洲最大成人网色| 96国产粉嫩美女| 欧美夫妻性视频| 日韩av一区在线| 丝袜亚洲另类欧美重口| 久久精品一区中文字幕| 久久亚洲精品一区二区| 亚洲国产精品va在看黑人| 亚洲国产欧美一区二区丝袜黑人| 国产精品久久久91| 欧美电影在线观看完整版| 91av视频在线播放| 日韩av在线不卡| 国产一区二区三区视频在线观看| 久热国产精品视频| 国产suv精品一区二区三区88区| 成人羞羞国产免费| 国产精品爽黄69天堂a| 国产日韩在线观看av| 欧美有码在线观看| 91精品国产91久久久久久吃药| 97香蕉超级碰碰久久免费的优势| 亚洲伦理中文字幕| 日韩美女在线播放| 欧美情侣性视频| 97avcom| 色爱av美腿丝袜综合粉嫩av| 日韩欧美在线国产| 性色av香蕉一区二区| 国产成人亚洲综合91| 精品国产视频在线| 国产精品入口日韩视频大尺度| 亚洲一区美女视频在线观看免费| 91日本在线观看| 欧美亚洲国产成人精品| 精品中文视频在线| 国产精品毛片a∨一区二区三区|国| 亚洲开心激情网| 国内伊人久久久久久网站视频| 欧美性xxxx极品高清hd直播| 国产69精品久久久久99| 欧美富婆性猛交| 欧美夫妻性生活视频| 国产精品成人va在线观看| 欧美国产日韩xxxxx| 激情亚洲一区二区三区四区| 久久精品国产v日韩v亚洲| 国产一区欧美二区三区| 久久精品人人做人人爽| 狠狠操狠狠色综合网| 欧美成在线视频| 国产午夜精品一区二区三区| 亚洲网在线观看| 国模视频一区二区| 国产精品a久久久久久| 成人有码在线播放| 久热在线中文字幕色999舞| 亚洲欧美日韩一区二区在线| 亚洲欧洲高清在线| 国产成人精品在线视频| 91精品在线一区| 国产精品欧美日韩一区二区| 国产精品 欧美在线| 亚洲精品视频在线观看视频| 国产欧亚日韩视频| xvideos成人免费中文版|