leetcode動(dòng)態(tài)規(guī)劃—背包系列(二)

416. 分割等和子集

給定一個(gè)只包含正整數(shù)的非空數(shù)組。是否可以將這個(gè)數(shù)組分割成兩個(gè)子集崎场,使得兩個(gè)子集的元素和相等。

輸入: [1, 5, 11, 5]
輸出: true
解釋: 數(shù)組可以分割成 [1, 5, 5] 和 [11].

這道題可以用01背包來求解享言,也就是數(shù)組中的數(shù)能否能裝下sum/2的包市殷,即dp[sum/2]是否為true.

class Solution {
public:
    bool canPartition(vector<int>& nums) {
        const int sum = std::accumulate(nums.begin(), nums.end(), 0);
        if (sum % 2 != 0) return false;
        vector<int> dp(sum + 1, 0);
        dp[0] = 1;
        for (const int num : nums) {
            for (int i = sum/2; i >= 0; --i)
                if (dp[i]) dp[i+num] = 1;
            if (dp[sum / 2]) return true;
        }
        return false;
    }
};

在評(píng)論區(qū)看到一個(gè)用bitset來做的,雖然還不太懂矮湘,但還是記錄下來回頭來看再做補(bǔ)充斟冕。

class Solution {
public:
    bool canPartition(vector<int>& nums) {
        
        if(nums.size()<2)   return false;
        
        int sum = accumulate(nums.begin(), nums.end(), 0);
        if(sum&1)  return false;
        
        bitset<10001> bits(1);
        for (auto n : nums) bits |= bits << n;
        return bits[sum >> 1];
    }
}

377. 組合總和 Ⅳ

給定一個(gè)由正整數(shù)組成且不存在重復(fù)數(shù)字的數(shù)組,找出和為給定目標(biāo)正整數(shù)的組合的個(gè)數(shù)缅阳。

nums = [1, 2, 3]
target = 4
所有可能的組合為:
(1, 1, 1, 1)
(1, 1, 2)
(1, 2, 1)
(1, 3)
(2, 1, 1)
(2, 2)
(3, 1)

這是一道涉及順序的完全背包磕蛇。

class Solution {
public:
    int combinationSum4(vector<int>& nums, int target) {
        if(nums.empty()) return 0;
        vector<unsigned long long> dp(target+1,0);//用int會(huì)溢出
        dp[0]=1;
        for(int i=1;i<=target;i++){
            for(auto num:nums){
                if(i>=num) dp[i]+=dp[i-num];
            }
        }
        return dp.back();
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子秀撇,更是在濱河造成了極大的恐慌超棺,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呵燕,死亡現(xiàn)場(chǎng)離奇詭異棠绘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)再扭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門氧苍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泛范,你說我怎么就攤上這事让虐。” “怎么了敦跌?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵澄干,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我柠傍,道長(zhǎng)麸俘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任惧笛,我火速辦了婚禮从媚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘患整。我一直安慰自己拜效,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布各谚。 她就那樣靜靜地躺著紧憾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昌渤。 梳的紋絲不亂的頭發(fā)上赴穗,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音膀息,去河邊找鬼般眉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛潜支,可吹牛的內(nèi)容都是我干的甸赃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼冗酿,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼埠对!你這毒婦竟也來了络断?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤鸠窗,失蹤者是張志新(化名)和其女友劉穎妓羊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稍计,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年裕循,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臣嚣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剥哑,死狀恐怖硅则,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情株婴,我是刑警寧澤怎虫,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站困介,受9級(jí)特大地震影響大审,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜座哩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一徒扶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧根穷,春花似錦姜骡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至尘惧,卻和暖如春康栈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背褥伴。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工谅将, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人重慢。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓饥臂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親似踱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子隅熙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349