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

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

494. Target Sum

2019-11-11 04:50:47
字體:
來源:轉載
供稿:網友

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
久久久亚洲国产天美传媒修理工| 57pao精品| 欧美性少妇18aaaa视频| 日本乱人伦a精品| 在线看福利67194| 亚洲精品天天看| 亚洲黄色免费三级| 国产视频精品xxxx| 欧美国产激情18| 色偷偷偷综合中文字幕;dd| 国产精品极品美女粉嫩高清在线| 国产精品精品一区二区三区午夜版| 97免费视频在线播放| 国产日韩欧美视频| 欧美一级免费看| 日韩精品中文字幕在线播放| 国产成人精品视频在线| 在线观看免费高清视频97| 精品一区精品二区| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲男人天堂手机在线| 精品国产乱码久久久久久天美| 中文字幕国产亚洲2019| 久久久久久久999精品视频| 亚洲精品国产精品自产a区红杏吧| 久久天天躁狠狠躁夜夜av| 精品久久久久久久久久久久久久| 欧美成人在线影院| 97色在线观看免费视频| 国产精品无av码在线观看| 日韩精品免费在线观看| 日韩精品免费视频| 亚洲第一中文字幕在线观看| 91中文字幕在线观看| 亚洲淫片在线视频| 亚洲一区中文字幕在线观看| 亚洲精品资源在线| 日韩av免费一区| 精品国产精品三级精品av网址| 亚洲综合最新在线| 青青精品视频播放| 在线播放国产精品| 成人欧美一区二区三区黑人孕妇| 在线成人中文字幕| 国产精品日韩一区| 97在线视频免费| 国产精品成人国产乱一区| 亚洲成年网站在线观看| 亚洲精品一区二三区不卡| 欧美精品video| 亚洲欧美一区二区三区在线| 欧美一级高清免费播放| 精品国产自在精品国产浪潮| 国产一区玩具在线观看| 国产精品三级美女白浆呻吟| 亚洲第一天堂av| 日韩欧美在线看| 88国产精品欧美一区二区三区| 亚洲人成亚洲人成在线观看| 亚洲国产精品小视频| 日韩国产一区三区| 午夜精品久久久久久久久久久久| 久久综合伊人77777| 欧美插天视频在线播放| 日韩电影第一页| 久久精品国产亚洲精品| 欧美第一黄网免费网站| 国产精品吊钟奶在线| 久久精品视频va| 成人免费黄色网| 欧美激情精品久久久久久黑人| 中文字幕日韩在线播放| 久久久999精品视频| 国产精品欧美风情| 91高清免费在线观看| 成人福利网站在线观看11| 亚洲电影免费观看高清完整版在线| 国语自产精品视频在线看| 亚洲爱爱爱爱爱| 国产成人精品国内自产拍免费看| 精品福利在线视频| 国产亚洲xxx| 国产成人精品av在线| 亚洲欧美在线播放| 欧美日韩国产精品一区二区三区四区| 亚洲色图美腿丝袜| 日韩电影中文字幕在线观看| 青青久久av北条麻妃黑人| 午夜伦理精品一区| 亚洲欧美日韩另类| 欧美亚洲视频在线观看| 亚洲精品视频网上网址在线观看| 欧美视频在线观看 亚洲欧| 国产福利视频一区| 中文字幕亚洲欧美日韩2019| 国产精品久久久久9999| 国产婷婷97碰碰久久人人蜜臀| 91高清免费视频| 久久久精品国产一区二区| 97精品在线视频| 韩国福利视频一区| 国产91精品最新在线播放| 欧美高跟鞋交xxxxxhd| 欧美人成在线视频| 国产狼人综合免费视频| 成人网在线免费观看| 色综合视频一区中文字幕| 精品亚洲一区二区三区四区五区| 在线日韩av观看| 97超级碰在线看视频免费在线看| 97国产真实伦对白精彩视频8| 精品免费在线观看| 国产美女久久精品香蕉69| 欧美体内谢she精2性欧美| 国产成人aa精品一区在线播放| 亚洲一区二区久久久久久久| 欧美性猛交视频| 韩剧1988免费观看全集| 97在线视频免费播放| 在线视频中文亚洲| 精品欧美国产一区二区三区| 日韩中文字幕视频在线观看| 亚洲第一区第一页| 91网站在线看| 久久久久久九九九| 日韩av片免费在线观看| 亚洲激情在线视频| 日韩大胆人体377p| 搡老女人一区二区三区视频tv| 欧美精品久久久久| 国产乱肥老妇国产一区二| 精品色蜜蜜精品视频在线观看| 日韩av片永久免费网站| 亚洲国产美女精品久久久久∴| 日韩最新中文字幕电影免费看| 亚洲视频综合网| 97国产在线观看| 不卡av日日日| 日本久久中文字幕| 亚洲成人精品在线| 国产精品999| 国产成+人+综合+亚洲欧美丁香花| 菠萝蜜影院一区二区免费| 国产精品综合网站| 一区二区三区四区在线观看视频| 亚洲欧洲日韩国产| 亚洲人午夜色婷婷| 91精品国产综合久久香蕉的用户体验| 日韩中文在线观看| 欧美精品18videos性欧美| 亚洲第一区中文99精品| 久久91精品国产| 91成人在线观看国产| 日韩大陆毛片av| 97婷婷大伊香蕉精品视频| 国产精品入口免费视频一| 黄色一区二区在线观看| 欧美丰满少妇xxxxx做受| 亚洲国产精品久久91精品| 成人黄在线观看| 亚洲高清不卡av| 久久久视频精品| 91久久国产婷婷一区二区| 久久精品美女视频网站|