<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)377:組合總和 Ⅳ

          共 2549字,需瀏覽 6分鐘

           ·

          2021-09-13 16:02

          算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識(shí)和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個(gè)公眾號(hào)后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問題叫做 組合總和 Ⅳ,我們先來看題面:
          https://leetcode-cn.com/problems/find-k-pairs-with-smallest-sums/

          Given an array of distinct integers nums and a target integer target, return the number of possible combinations that add up to target.


          The answer is guaranteed to fit in a 32-bit integer.


          給你一個(gè)由 不同 整數(shù)組成的數(shù)組 nums ,和一個(gè)目標(biāo)整數(shù) target 。請(qǐng)你從 nums 中找出并返回總和為 target 的元素組合的個(gè)數(shù)。
          題目數(shù)據(jù)保證答案符合 32 位整數(shù)范圍。

          示例


          示例 1

          輸入:nums = [1,2,3], target = 4
          輸出:7
          解釋:
          所有可能的組合為:
          (1, 1, 1, 1)
          (1, 1, 2)
          (1, 2, 1)
          (1, 3)
          (2, 1, 1)
          (2, 2)
          (3, 1)
          請(qǐng)注意,順序不同的序列被視作不同的組合。

          示例 2

          輸入:nums = [9], target = 3
          輸出:0


          解題


          動(dòng)態(tài)規(guī)劃

          本題第一眼以為是dfs,但是實(shí)在想不出來下標(biāo)怎么處理
          dp數(shù)組的意義:dp[i]代表'target = i'時(shí)的組合數(shù)目,顯然此時(shí)dp數(shù)組的初始化長(zhǎng)度為target+1。
          遍歷規(guī)則:1 <= i <= target, ++i,target值從小到大。內(nèi)層遍歷是遍歷nums數(shù)組。
          更新規(guī)則:dp[i] += dp[i-num],隱含的含義是若當(dāng)前i >= num,那么可以在dp[i-num]加入num,組合為一個(gè)完整組合。
          邊界條件:dp[0] = 1,當(dāng)i == num,代表本身數(shù)字是一個(gè)組合,因此dp[0]需等于1。

          class Solution {
          public:
             
              int combinationSum4(vector<int>& nums, int target) {
                  // dp[i]:target為i時(shí)的組合數(shù)目

                  vector<int> dp(target+1, 0);
                  dp[0] = 1;
                  for(int i = 1; i < target + 1;++i){
                      for(auto num:nums){
                          if(num <= i && dp[i-num] < INT_MAX - dp[i]) // 防止越界
                              dp[i] += dp[i - num];
                      }
                  }

                  return dp[target];
              }
          };


          好了,今天的文章就到這里,如果覺得有所收獲,請(qǐng)順手點(diǎn)個(gè)在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動(dòng)力 。

          上期推文:

          LeetCode1-360題匯總,希望對(duì)你有點(diǎn)幫助!

          LeetCode刷題實(shí)戰(zhàn)361:轟炸敵人

          LeetCode刷題實(shí)戰(zhàn)362:敲擊計(jì)數(shù)器

          LeetCode刷題實(shí)戰(zhàn)363:矩形區(qū)域不超過 K 的最大數(shù)值和
          LeetCode刷題實(shí)戰(zhàn)364:加權(quán)嵌套序列和 II
          LeetCode刷題實(shí)戰(zhàn)365:水壺問題
          LeetCode刷題實(shí)戰(zhàn)366:尋找二叉樹的葉子節(jié)點(diǎn)
          LeetCode刷題實(shí)戰(zhàn)367:有效的完全平方數(shù)
          LeetCode刷題實(shí)戰(zhàn)368:最大整除子集數(shù)
          LeetCode刷題實(shí)戰(zhàn)369:給單鏈表加一
          LeetCode刷題實(shí)戰(zhàn)370:區(qū)間加法
          LeetCode刷題實(shí)戰(zhàn)371:兩整數(shù)之和
          LeetCode刷題實(shí)戰(zhàn)372:超級(jí)次方
          LeetCode刷題實(shí)戰(zhàn)373:查找和最小的K對(duì)數(shù)字
          LeetCode刷題實(shí)戰(zhàn)374:猜數(shù)字大小
          LeetCode刷題實(shí)戰(zhàn)375:猜數(shù)字大小 II
          LeetCode刷題實(shí)戰(zhàn)376:擺動(dòng)序列

          瀏覽 49
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日本AA | 日二区在线观看 | 成人无码天堂 | 97香蕉久久夜色精品国产 | 国产色欲一区二区精品 |