中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

數(shù)字營銷 h5 網(wǎng)站開發(fā)正規(guī)推廣賺傭金的平臺

數(shù)字營銷 h5 網(wǎng)站開發(fā),正規(guī)推廣賺傭金的平臺,營銷策劃策劃公司,wordpress wpuf目錄 動態(tài)規(guī)劃&#xff1a;01背包理論基礎(chǔ)416. 分割等和子集 動態(tài)規(guī)劃&#xff1a;01背包理論基礎(chǔ) 文章鏈接&#xff1a;代碼隨想錄 題目鏈接&#xff1a;卡碼網(wǎng)&#xff1a;46. 攜帶研究材料 01背包問題 二維數(shù)組解法&#xff1a; #include <bits/stdc.h> using namesp…

目錄

  • 動態(tài)規(guī)劃:01背包理論基礎(chǔ)
  • 416. 分割等和子集

動態(tài)規(guī)劃:01背包理論基礎(chǔ)

文章鏈接:代碼隨想錄
題目鏈接:卡碼網(wǎng):46. 攜帶研究材料

01背包問題
二維數(shù)組解法:

#include <bits/stdc++.h>
using namespace std;void slove(int M, int N){vector<vector<int>> dp(M, vector<int> (N + 1));vector<int> weight(M), value(M);for (int i = 0; i < M; i++){cin >> weight[i];}for (int i = 0; i < M; i++){cin >> value[i];}for (int j = 0; j <= N; j++){if (j >= weight[0]) dp[0][j] = value[0];}for (int i = 1; i < M; i++){for (int j = 0; j <= N;  j++){if (j < weight[i]) dp[i][j] = dp[i - 1][j];else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);}}cout << dp[M - 1][N] << endl;
}int main(){int M, N;cin >> M >> N;slove(M, N);return 0;
}

思路:就是按代碼隨想錄上的那張二維表來看,更新 j 重量下的背包能放0 - i 中多少最大價值的物品;然后一行一行的更新,更新到新物品時,要么就是在 j 重量下放不下,也就是

if (j < weight[i]) dp[i][j] = dp[i - 1][j];

要么能放下就取 原來 或者 新更新物品后背包中的最大值,也就是

else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);

其中,

dp[i - 1][j]

代表不放入 i 物品

dp[i - 1][j - weight[i]] + value[i]

代表在 j 重量下先空出weight[i]這么大的空間,然后再放如 i 物品,它可能是本來就有這么大空間,也可能是把其它一些物品拿出去后再放入的 i 物品。

一維(滾動數(shù)組)數(shù)組解法:

#include <bits/stdc++.h>
using namespace std;void slove(int M, int N){vector<int> dp(N + 1, 0);vector<int> weight(M), value(M);for (int i = 0; i < M; i++){cin >> weight[i];}for (int i = 0; i < M; i++){cin >> value[i];}for (int i = 0; i < M; i++){for (int j = N; j >= weight[i]; j--){dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}}cout << dp[N] << endl;
}int main(){int M, N;cin >> M >> N;slove(M, N);return 0;
}

一維數(shù)組相比二維數(shù)組解法就是將每次更新都放在一行上,而且省去了初始化,所以會節(jié)省很多空間,這點在后面 leetcode 上的那題會看到比較。另外要注意在遍歷重量時是倒序遍歷的:

dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);

正序遍歷會引起重復(fù),而二維數(shù)組不會重復(fù)是因為每行都用的是上一行的值來更新的。
第一天理解的時候迷迷糊糊,第二天沒事時有想了一會突然茅塞頓開了哈哈哈。

416. 分割等和子集

文章鏈接:代碼隨想錄
題目鏈接:416. 分割等和子集

思路:01背包應(yīng)用問題,留足背包的容量,也就是最大總和的一半值加一,如果更新到最后在半值重量的背包中能正好裝滿,就說明數(shù)組可以對半分。
二維數(shù)組解法:

class Solution {
public:bool canPartition(vector<int>& nums) {int sum = 0;for (int i : nums){sum += i;}if (sum % 2 == 1) return false;int target = sum / 2;vector<vector<int>> dp(nums.size(), vector<int> (10001));for (int j = 0; j < 10001; j++){if (j >= nums[0]) dp[0][j] = nums[0];}for (int i = 1; i < nums.size(); i++){for (int j = 0; j < 10001; j++){if (j < nums[i]) dp[i][j] = dp[i - 1][j];else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - nums[i]] + nums[i]);}}if (dp[nums.size() - 1][target] == target) return true;return false;}
};

一維(滾動)數(shù)組解法:

class Solution {
public:bool canPartition(vector<int>& nums) {int sum = 0;for (int i : nums){sum += i;}if (sum % 2 == 1) return false;int target = sum / 2;vector<vector<int>> dp(nums.size(), vector<int> (10001));for (int j = 0; j < 10001; j++){if (j >= nums[0]) dp[0][j] = nums[0];}for (int i = 1; i < nums.size(); i++){for (int j = 0; j < 10001; j++){if (j < nums[i]) dp[i][j] = dp[i - 1][j];else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - nums[i]] + nums[i]);}}if (dp[nums.size() - 1][target] == target) return true;return false;}
};


這里可以看出兩種解法的時間空間對比,顯然二維解法有著更大的時間和空間復(fù)雜度。因此以后的應(yīng)用問題盡可能一維(滾動)數(shù)組解法。

第四十二天補卡,這兩天回學(xué)校吃組飯,又耽誤了兩天,后面那頓飯你不行不去吃了;大體知識能串聯(lián)起來了,今天開始擼項目背八股,哪不會學(xué)哪了,單學(xué)效率太低了,爭取能在春節(jié)后找到個實習(xí),加油!!!

http://m.risenshineclean.com/news/64290.html

相關(guān)文章:

  • 徐匯網(wǎng)站建設(shè)推廣免費網(wǎng)絡(luò)營銷方式
  • 外貿(mào)公司網(wǎng)站如何做推廣百度頁面推廣
  • 樂清門戶網(wǎng)今日最新信息seo培訓(xùn)公司
  • 常州網(wǎng)站制作市場百度競價
  • 綦江網(wǎng)站建設(shè)公司su搜索引擎優(yōu)化
  • 做合法的海外購網(wǎng)站需要什么手續(xù)網(wǎng)站維護(hù)公司
  • 如何做網(wǎng)站內(nèi)鏈網(wǎng)頁模板建站系統(tǒng)
  • 尋找鄭州網(wǎng)站優(yōu)化公司網(wǎng)絡(luò)推廣網(wǎng)站程序
  • 做的網(wǎng)站怎么讓百度收索時搜優(yōu)化設(shè)計方法
  • 歐美做同志網(wǎng)站有哪些百度地圖疫情實時動態(tài)
  • 合肥做網(wǎng)站優(yōu)化公司蘇州seo門戶網(wǎng)
  • 國內(nèi)好看的網(wǎng)站設(shè)計湖南網(wǎng)站托管
  • 做網(wǎng)站之前要安裝什么百度知道灰色詞代發(fā)收錄
  • 網(wǎng)站 電信已備案 聯(lián)通seo怎么做新手入門
  • b2c網(wǎng)站的特點北京百度推廣開戶
  • 建網(wǎng)站的目的做網(wǎng)站的軟件有哪些
  • 網(wǎng)站建設(shè)夢幻創(chuàng)意百度指數(shù)搜索熱度大學(xué)
  • 打開這個網(wǎng)站域名權(quán)重是什么意思
  • 凡科自助建站自己做網(wǎng)站新聞發(fā)稿推廣
  • 網(wǎng)站建設(shè)招標(biāo)參數(shù)小程序開發(fā)費用明細(xì)
  • 如何做單位網(wǎng)站網(wǎng)站競價推廣
  • 做直銷網(wǎng)站的公司做網(wǎng)站公司哪家正規(guī)
  • 企業(yè)展廳建設(shè)公司淘寶標(biāo)題優(yōu)化網(wǎng)站
  • 免費下載軟件商店安裝高州網(wǎng)站seo
  • 西安商城網(wǎng)站開發(fā)產(chǎn)品推廣方式及推廣計劃
  • 企石網(wǎng)站建設(shè)怎么做百度推廣運營
  • 做app和做網(wǎng)站相同和區(qū)別最新營銷模式
  • 上海人才網(wǎng)站廣告公司網(wǎng)上接單平臺
  • 什么網(wǎng)站做國外批發(fā)國內(nèi)免費建站平臺
  • 上海建筑建材業(yè)門戶網(wǎng)站項目推廣平臺排行榜