国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

學(xué)校網(wǎng)站模版網(wǎng)絡(luò)推廣優(yōu)化方案

學(xué)校網(wǎng)站模版,網(wǎng)絡(luò)推廣優(yōu)化方案,公司官網(wǎng)系統(tǒng),如何建設(shè)酒店預(yù)訂系統(tǒng)網(wǎng)站LeetCode300.最長(zhǎng)遞增子序列 動(dòng)態(tài)規(guī)劃五部曲: 1,dp[i]的定義:本題中,正確定義dp數(shù)組的含義十分重要。dp[i]表示i之前包括i的以nums[i]結(jié)尾的最長(zhǎng)遞增子序列的長(zhǎng)度。為什么一定表示 “以nums[i]結(jié)尾的最長(zhǎng)遞增子序” &#xff0c…

LeetCode300.最長(zhǎng)遞增子序列

動(dòng)態(tài)規(guī)劃五部曲:

1,dp[i]的定義:本題中,正確定義dp數(shù)組的含義十分重要。dp[i]表示i之前包括i的以nums[i]結(jié)尾的最長(zhǎng)遞增子序列的長(zhǎng)度。為什么一定表示 “以nums[i]結(jié)尾的最長(zhǎng)遞增子序” ,因?yàn)樵谧鲞f增比較的時(shí)候,如果比較 nums[j] 和 nums[i] 的大小,那么兩個(gè)遞增子序列一定分別以nums[j]為結(jié)尾 和 nums[i]為結(jié)尾, 要不然這個(gè)比較就沒有意義了,不是尾部元素的比較那么 如何算遞增呢。

2,狀態(tài)轉(zhuǎn)移方程:位置i的最長(zhǎng)升序子序列等于j從0到i-1各個(gè)位置的最長(zhǎng)升序子序列 + 1 的最大值。所以:if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1);

注意這里不是要dp[i] 與 dp[j] + 1進(jìn)行比較,而是我們要取dp[j] + 1的最大值。

3,dp[i]的初始化:每一個(gè)i,對(duì)應(yīng)的dp[i](即最長(zhǎng)遞增子序列)起始大小至少都是1。

4,確定遍歷順序:dp[i] 是有0到i-1各個(gè)位置的最長(zhǎng)遞增子序列 推導(dǎo)而來,那么遍歷i一定是從前向后遍歷。j其實(shí)就是遍歷0到i-1,那么是從前到后,還是從后到前遍歷都無(wú)所謂,只要吧 0 到 i-1 的元素都遍歷了就行了。 所以默認(rèn)習(xí)慣 從前向后遍歷。

5,舉例推導(dǎo)dp數(shù)組:輸入:[0,1,0,3,2],dp數(shù)組的變化如下:

Java代碼如下:

    public int lengthOfLIS(int[] nums) {int[] dp = new int[nums.length];Arrays.fill(dp, 1);for (int i = 0; i < dp.length; i++) {for (int j = 0; j < i; j++) {if (nums[i] > nums[j]) {dp[i] = Math.max(dp[i], dp[j] + 1);}}}int res = 0;for (int i = 0; i < dp.length; i++) {res = Math.max(res, dp[i]);}return res;}

LeetCode674. 最長(zhǎng)連續(xù)遞增序列

動(dòng)態(tài)規(guī)劃五部曲:

1,確定dp數(shù)組(dp table)以及下標(biāo)的含義:dp[i]:以下標(biāo)i為結(jié)尾的連續(xù)遞增的子序列長(zhǎng)度為dp[i]。注意這里的定義,一定是以下標(biāo)i為結(jié)尾,并不是說一定以下標(biāo)0為起始位置。

2,確定遞推公式:如果 nums[i] > nums[i - 1],那么以 i 為結(jié)尾的連續(xù)遞增的子序列長(zhǎng)度 一定等于 以i - 1為結(jié)尾的連續(xù)遞增的子序列長(zhǎng)度 + 1 。即:dp[i] = dp[i - 1] + 1;因?yàn)楸绢}要求連續(xù)遞增子序列,所以就只要比較nums[i]與nums[i - 1],而不用去比較nums[j]與nums[i] (j是在0到i之間歷)。既然不用j了,那么也不用兩層for循環(huán),本題一層for循環(huán)就行,比較nums[i] 和 nums[i - 1]。

3,dp數(shù)組如何初始化:以下標(biāo)i為結(jié)尾的連續(xù)遞增的子序列長(zhǎng)度最少也應(yīng)該是1,即就是nums[i]這一個(gè)元素。所以dp[i]應(yīng)該初始1;

4,確定遍歷順序:從遞推公式上可以看出, dp[i + 1]依賴dp[i],所以一定是從前向后遍歷。

5,舉例推導(dǎo)dp數(shù)組:已輸入nums = [1,3,5,4,7]為例,dp數(shù)組狀態(tài)如下:

Java代碼如下:

    public int findLengthOfLCIS(int[] nums) {int[] dp = new int[nums.length];for (int i = 0; i < dp.length; i++) {dp[i] = 1;}int res = 1;for (int i = 0; i < nums.length - 1; i++) {if (nums[i + 1] > nums[i]) {dp[i + 1] = dp[i] + 1;}res = res > dp[i + 1] ? res : dp[i + 1];}return res;}

?

LeetCode718. 最長(zhǎng)重復(fù)子數(shù)組

動(dòng)態(tài)規(guī)劃五部曲:

1,確定dp數(shù)組(dp table)以及下標(biāo)的含義:dp[i][j] :以下標(biāo)i - 1為結(jié)尾的A,和以下標(biāo)j - 1為結(jié)尾的B,最長(zhǎng)重復(fù)子數(shù)組長(zhǎng)度為dp[i][j]。 (特別注意: “以下標(biāo)i - 1為結(jié)尾的A” 標(biāo)明一定是 以A[i-1]為結(jié)尾的字符串 )。那dp[0][0]是什么含義呢?總不能是以下標(biāo)-1為結(jié)尾的A數(shù)組吧。其實(shí)dp[i][j]的定義也就決定著,我們?cè)诒闅vdp[i][j]的時(shí)候i 和 j都要從1開始。

2,確定遞推公式:根據(jù)dp[i][j]的定義,dp[i][j]的狀態(tài)只能由dp[i - 1][j - 1]推導(dǎo)出來。即當(dāng)A[i - 1] 和B[j - 1]相等的時(shí)候,dp[i][j] = dp[i - 1][j - 1] + 1;根據(jù)遞推公式可以看出,遍歷i 和 j 要從1開始!

3,dp數(shù)組如何初始化:根據(jù)dp[i][j]的定義,dp[i][0] 和dp[0][j]其實(shí)都是沒有意義的!但dp[i][0] 和dp[0][j]要初始值,因?yàn)?為了方便遞歸公式dp[i][j] = dp[i - 1][j - 1] + 1;所以dp[i][0] 和dp[0][j]初始化為0。舉個(gè)例子A[0]如果和B[0]相同的話,dp[1][1] = dp[0][0] + 1,只有dp[0][0]初始為0,正好符合遞推公式逐步累加起來。

4,確定遍歷順序:外層for循環(huán)遍歷A,內(nèi)層for循環(huán)遍歷B。那又有同學(xué)問了,外層for循環(huán)遍歷B,內(nèi)層for循環(huán)遍歷A。不行么?也行,一樣的,我這里就用外層for循環(huán)遍歷A,內(nèi)層for循環(huán)遍歷B了。同時(shí)題目要求長(zhǎng)度最長(zhǎng)的子數(shù)組的長(zhǎng)度。所以在遍歷的時(shí)候順便把dp[i][j]的最大值記錄下來。

5,舉例推導(dǎo)dp數(shù)組:拿示例1中,A: [1,2,3,2,1],B: [3,2,1,4,7]為例,畫一個(gè)dp數(shù)組的狀態(tài)變化,如下:

Java代碼如下:

    public int findLength(int[] nums1, int[] nums2) {int result = 0;int[][] dp = new int[nums1.length + 1][nums2.length + 1];for (int i = 1; i < nums1.length + 1; i++) {for (int j = 1; j < nums2.length + 1; j++) {if (nums1[i - 1] == nums2[j - 1]) {dp[i][j] = dp[i - 1][j - 1] + 1;result = Math.max(result, dp[i][j]);}}}return result;}

?

?

http://aloenet.com.cn/news/36151.html

相關(guān)文章:

  • 山東省作風(fēng)建設(shè)網(wǎng)站湖南網(wǎng)站排名
  • 做動(dòng)效的網(wǎng)站免費(fèi)外鏈發(fā)布
  • 網(wǎng)站的后臺(tái)登錄注冊(cè)怎么做賬戶競(jìng)價(jià)托管公司
  • asia域名發(fā)布網(wǎng)站谷歌瀏覽器安卓下載
  • 長(zhǎng)治制作網(wǎng)站傳統(tǒng)營(yíng)銷和網(wǎng)絡(luò)營(yíng)銷的區(qū)別
  • ui設(shè)計(jì)與網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣渠道都有哪些
  • 網(wǎng)站一個(gè)人可以做嗎找培訓(xùn)機(jī)構(gòu)的網(wǎng)站
  • 網(wǎng)站建設(shè)技術(shù)分類aso具體優(yōu)化
  • 做中介開什么網(wǎng)站如何搜索網(wǎng)頁(yè)關(guān)鍵詞
  • 湖北網(wǎng)站建設(shè)企業(yè)百度sem推廣具體做什么
  • 富平做網(wǎng)站中國(guó)職業(yè)培訓(xùn)在線平臺(tái)
  • 網(wǎng)站設(shè)計(jì)創(chuàng)意2023年6月疫情情況
  • 做ppt好用的網(wǎng)站廣告代發(fā)平臺(tái)
  • wen前端網(wǎng)站開發(fā)日記外鏈的作用
  • 清遠(yuǎn)企業(yè)網(wǎng)站排名win7優(yōu)化教程
  • 權(quán)重較高網(wǎng)站深圳百度推廣聯(lián)系方式
  • 專注大連網(wǎng)站建設(shè)百度推廣登錄手機(jī)版
  • asp.net 網(wǎng)站訪問量商品推廣與營(yíng)銷的方式
  • 京東商城網(wǎng)站設(shè)計(jì)酒店如何進(jìn)行網(wǎng)絡(luò)營(yíng)銷
  • 畫冊(cè)制作揭陽(yáng)seo推廣公司
  • 永嘉網(wǎng)站建設(shè)幾熱門關(guān)鍵詞
  • 山東美建站金華百度推廣公司
  • 開發(fā)一個(gè)視頻網(wǎng)站要多少錢360優(yōu)化大師app下載
  • 南城區(qū)網(wǎng)站仿做網(wǎng)絡(luò)營(yíng)銷推廣與策劃
  • 05網(wǎng)亮點(diǎn)給力大試卷網(wǎng)站seo博客
  • 贛州信息港贛州熱線湖南seo網(wǎng)站多少錢
  • 我的世界做神器指令網(wǎng)站網(wǎng)絡(luò)平臺(tái)建站
  • 網(wǎng)站開發(fā)難學(xué)嗎今天的新聞 聯(lián)播最新消息
  • 用vs2010做的網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)模板圖片
  • 陽(yáng)信做網(wǎng)站營(yíng)銷型網(wǎng)站建設(shè)費(fèi)用