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

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

494. Target Sum

2019-11-11 05:23:59
字體:
來源:轉載
供稿:網友

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
色小说视频一区| 欧美精品激情在线观看| 国产成人久久久精品一区| 国产精品激情av在线播放| 免费av在线一区| 91国内揄拍国内精品对白| 国产精品久久久久久久久粉嫩av| 欧美中文在线免费| 成人激情电影一区二区| 国产亚洲成精品久久| 性金发美女69hd大尺寸| 精品久久久视频| 中文字幕日韩在线播放| 欧美激情在线观看视频| 日韩视频在线一区| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美人成在线视频| 国产婷婷97碰碰久久人人蜜臀| 欧美精品18videos性欧| 久久香蕉频线观| 美女久久久久久久久久久| 538国产精品一区二区在线| 国产精品无av码在线观看| 91丝袜美腿美女视频网站| 91精品在线国产| 成人av资源在线播放| 国产精品99久久久久久人| 日韩经典一区二区三区| 亚洲女人被黑人巨大进入| 国产亚洲精品美女久久久久| 91av在线免费观看| 成人精品一区二区三区电影黑人| 91精品啪aⅴ在线观看国产| 久久久久久网站| 亚洲欧美日韩视频一区| 国产精品久久一| 国产91精品最新在线播放| 国产色视频一区| 久久中文精品视频| 亚洲伊人第一页| 伊人青青综合网站| 亚洲精品第一国产综合精品| 亚洲精品aⅴ中文字幕乱码| 亚洲精品国产精品久久清纯直播| 97视频人免费观看| 久操成人在线视频| 亚洲欧美精品在线| 中文字幕精品久久久久| 国产亚洲精品久久| 日韩av网址在线观看| 国产亚洲欧美日韩一区二区| 欧美大片免费观看在线观看网站推荐| 国产一区二区三区直播精品电影| 色婷婷综合久久久久中文字幕1| 日韩国产精品视频| 色婷婷av一区二区三区久久| 91在线视频九色| 成人激情电影一区二区| 91精品久久久久久久久久| 国产精品ⅴa在线观看h| 国产精品视频精品视频| 成人欧美在线视频| 亚洲欧美日韩中文在线| 国产一区二区动漫| 欧美精品一区二区免费| 亚洲精品99久久久久中文字幕| 久久久久久久久国产精品| 欧美最猛性xxxxx(亚洲精品)| 欧美日产国产成人免费图片| 欧美日韩福利电影| 欧美性在线观看| 欧美性xxxxxxx| 这里只有精品视频在线| 亚洲精品国产精品国自产在线| 97精品国产97久久久久久| 欧美精品videossex性护士| 国产精品视频久久| 亚洲精品自拍偷拍| 91精品在线播放| 亚洲美女av在线播放| 91高清在线免费观看| 国产精品影片在线观看| 97精品免费视频| 在线观看91久久久久久| 性色av一区二区三区红粉影视| 亚洲人成在线观看网站高清| 日本精品性网站在线观看| 中日韩美女免费视频网站在线观看| 国产色综合天天综合网| 国产欧美亚洲视频| 日韩在线观看免费全集电视剧网站| 热门国产精品亚洲第一区在线| 国产精品久久久久久久美男| 欧美日韩国产91| 国产精品亚洲片夜色在线| 欧美性做爰毛片| 色偷偷av一区二区三区乱| 中文精品99久久国产香蕉| 久久综合色88| 久久久久久久久电影| 日韩欧美在线视频日韩欧美在线视频| 国产欧洲精品视频| 久久视频在线直播| 亚洲综合中文字幕68页| 色婷婷**av毛片一区| 日韩av在线一区二区| 亚洲综合社区网| 国产精品久久久久久网站| 91国产精品91| 欧美成人午夜免费视在线看片| 国产精品一区二区三区毛片淫片| 亚洲人成电影在线播放| 欧美日韩国产一区二区三区| 亚洲女同性videos| 日韩欧美aⅴ综合网站发布| 日日摸夜夜添一区| 成人网页在线免费观看| 97超级碰碰碰久久久| 亚洲精品成人免费| 亚洲欧美日韩中文视频| 国产精品日韩欧美大师| 亚洲国产精品视频在线观看| 怡红院精品视频| 色噜噜狠狠狠综合曰曰曰88av| 中文字幕亚洲欧美日韩高清| 国产精品电影网站| 亚洲欧美中文日韩在线v日本| 一区二区亚洲精品国产| 97视频在线观看亚洲| 免费91在线视频| 欧美视频专区一二在线观看| 日韩视频第一页| 亚洲精品之草原avav久久| 欧美大胆在线视频| 日本免费久久高清视频| 中文字幕成人精品久久不卡| 久久夜精品va视频免费观看| 午夜精品一区二区三区av| 伊人久久五月天| 麻豆成人在线看| 91久久久久久久久久| 亚洲最大成人网色| 国产精品久久久久久久久久99| 日本久久久久久久久久久| 久久国产色av| www高清在线视频日韩欧美| 中文字幕亚洲在线| 久久亚洲影音av资源网| 国产在线观看精品一区二区三区| 欧美黑人巨大xxx极品| 亚洲va欧美va在线观看| 日韩视频免费在线| 国语自产精品视频在线看抢先版图片| 欧美成人h版在线观看| 亚洲午夜女主播在线直播| 国产成人高潮免费观看精品| 国产福利精品av综合导导航| 国产精品久久av| 欧美成人午夜视频| 精品国产一区二区三区久久狼黑人| 国产欧美精品在线| 亚洲欧洲在线视频| 国产精品自拍偷拍| 国内精品久久久久久久|