Day 41

Day 41

343. 整數拆分

一個是j * dp[i - j],相當于是拆分(i - j),對這個拆分不理解的話,可以回想dp數組的定義。

dp[i] = max({dp[i], (i - j) * j, dp[i - j] * j});

class Solution:def integerBreak(self, n: int) -> int:dp = [0] * (n + 1)dp[2] = 1for i in range(3, n + 1):for j in range(1, i // 2 + 1):dp[i] = max(dp[i], (i - j) * j, dp[i - j] * j)return dp[n]
class Solution {public int integerBreak(int n) {//dp[i] 為正整數 i 拆分后的結果的最大乘積int[] dp = new int[n+1];dp[2] = 1;for(int i = 3; i <= n; i++) {for(int j = 1; j <= i-j; j++) {// 這里的 j 其實最大值為 i-j,再大只不過是重復而已,//并且,在本題中,我們分析 dp[0], dp[1]都是無意義的,//j 最大到 i-j,就不會用到 dp[0]與dp[1]dp[i] = Math.max(dp[i], Math.max(j*(i-j), j*dp[i-j]));// j * (i - j) 是單純的把整數 i 拆分為兩個數 也就是 i,i-j ,再相乘//而j * dp[i - j]是將 i 拆分成兩個以及兩個以上的個數,再相乘。}}return dp[n];}
}

96.不同的二叉搜索樹

dp[3],就是 元素1為頭結點搜索樹的數量 + 元素2為頭結點搜索樹的數量 + 元素3為頭結點搜索樹的數量

元素1為頭結點搜索樹的數量 = 右子樹有2個元素的搜索樹數量 * 左子樹有0個元素的搜索樹數量

元素2為頭結點搜索樹的數量 = 右子樹有1個元素的搜索樹數量 * 左子樹有1個元素的搜索樹數量

元素3為頭結點搜索樹的數量 = 右子樹有0個元素的搜索樹數量 * 左子樹有2個元素的搜索樹數量

有2個元素的搜索樹數量就是dp[2]。

有1個元素的搜索樹數量就是dp[1]。

有0個元素的搜索樹數量就是dp[0]。

所以dp[3] = dp[2] * dp[0] + dp[1] * dp[1] + dp[0] * dp[2]

class Solution:def numTrees(self, n: int) -> int:dp = [0] * (n + 1)dp[0] = 1for i in range(1, n + 1):for j in range(1, i + 1):dp[i] += dp[j - 1] * dp[i - j]return dp[n]
class Solution {public int numTrees(int n) {//初始化 dp 數組int[] dp = new int[n + 1];//初始化0個節點和1個節點的情況dp[0] = 1;dp[1] = 1;for (int i = 2; i <= n; i++) {for (int j = 1; j <= i; j++) {//對于第i個節點,需要考慮1作為根節點直到i作為根節點的情況,所以需要累加//一共i個節點,對于根節點j時,左子樹的節點個數為j-1,右子樹的節點個數為i-jdp[i] += dp[j - 1] * dp[i - j];}}return dp[n];}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35159.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35159.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35159.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

離線環境conda虛擬環境備份遷移--conda pack問題

1.第一步&#xff1a;創建虛擬環境 conda create -n pyenv --clone base 或者 conda create -n pyenv python3.8.5 --offline 命令執行結束&#xff0c;在路徑/xxxx/anaconda/envs 下看到pyenv 或者 conda info --envs 查看羅列虛擬環境 2.第二步&#xff1a;打包環境 conda …

ROS2 學習(一)介紹,環境搭建,以及個人安裝的一些建議

ROS2 學習 學習自b站課程&#xff1a;https://www.bilibili.com/video/BV16B4y1Q7jQ?p1 &#xff08;up主&#xff1a;古月居GYH&#xff09; ROS 介紹 Robot OS&#xff0c;為機器人開發提供了相對完善的 middleware&#xff0c;工具&#xff0c;軟件等。 ROS1 對嵌入式設…

計算機網絡(7) --- UDP協議和TCP協議

計算機網絡&#xff08;6&#xff09; --- https協議_哈里沃克的博客-CSDN博客https協議https://blog.csdn.net/m0_63488627/article/details/132112683?spm1001.2014.3001.5501 目錄 1.補充知識 1.PORT端口號 2.端口號范圍劃分 3.知名端口號 2.UDP協議 1.UDP報頭 2.U…

容器逃逸Docker cp(CVE-2019-14271)漏洞復現與分析

目錄 安裝 原理 EXP 參考 安裝 metarget安裝有點問題&#xff0c;所以我們直接指定安裝 可以用下面命令 查看包 apt-cache madison docker-ce 安裝 apt-get install -y docker-ce5:19.03.0~3-0~ubuntu-bionic 原理 EXP metarget/writeups_cnv/docker-cve-2019-14271 at …

Insert 1, Insert 2, Insert 3, ... 2023牛客暑期多校訓練營8 H

登錄—專業IT筆試面試備考平臺_牛客網 題目大意&#xff1a;給出一個長度為n的數組a&#xff0c;問有多少子串滿足其可以用多個排列穿插構成 1<n<1e6 思路&#xff1a;因為每個排列的起點都是1&#xff0c;所以我們大致的策略就是對于每一個1&#xff0c;記錄它往右最…

BGP小綜合

實驗題目如下&#xff1a; 實驗拓撲如下&#xff1a; 實驗要求如下&#xff1a; 【1】R2-7每臺路由器均存在一個環回接口用于建立鄰居&#xff0c;同時還存在一個環回來代表連接用戶的 接口;最終這些連接用戶的接口網絡需要可以和R1/8的環回通訊 【2】AS2網段地址1…

基于smardaten無代碼開發智能巡檢系統,讓無人機飛得更準

目錄 引言需求背景搭建思路開發過程&#xff08;1&#xff09;無人機設備數據接入&#xff08;2&#xff09;無人機巡檢任務管理&#xff08;3&#xff09;無人機三維防控監視&#xff08;4&#xff09;運防一體化大屏設計&#xff08;5&#xff09;異常告警管理&#xff08;6&…

面試總結-webpack/git

說說你對webpack的理解 webpack 是一個靜態模塊打包器&#xff0c;整個打包過程就像是一條生產線&#xff0c;把資源從入口放進去&#xff0c;經過一系列的加工&#xff08;loader&#xff09;&#xff0c;最終轉換成我們想要的結果&#xff0c;整個加工過程還會有監控&#x…

公共服務領域:西安新小區業主自立業主委員會年底分紅83萬以及103萬事件區塊鏈資金透明監管與投票解決方案的嘗試

公共服務領域:西安新小區業主自立業主委員會年底分紅83萬以及103萬事件區塊鏈資金透明監管與投票解決方案的嘗試 作者 重慶電子工程職業學院 | 向鍵雄 杜小敏 前言 本項目想法來源于,西安新小區業主開出物業自立業主委員會年底分紅83萬以及103萬事件,對于此類事件,我們刨…

微信小程序加載本地json和使用gulp壓縮js

加載本地json 創建json.js, data 里是json內容,exports 是數據出口 var data = [ {json1},{json2},{json3},{json10} ....] module.exports = {listData = data } 使用 這個require后面的參數是入口文件的文件路徑,但是注意必須是相對路徑,不能絕對路徑。 let json = re…

redis基礎(三十六)

安裝redis、配置redis 目錄 一、 概述 &#xff08;一&#xff09;NoSQL 1、類型 2、應用場景 &#xff08;二&#xff09;Redis 二、安裝 &#xff08;一&#xff09;編譯安裝 &#xff08;二&#xff09;RPM安裝 三、目錄結構 四、命令解析 五、redis登錄更改 1、…

2023國賽數學建模C題思路分析

文章目錄 0 賽題思路1 競賽信息2 競賽時間3 建模常見問題類型3.1 分類問題3.2 優化問題3.3 預測問題3.4 評價問題 4 建模資料 0 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 競賽信息 全國大學生數學建模…

中睿天下入選河南省網信系統2023年度網絡安全技術支撐單位

近日&#xff0c;河南省委網信辦發布了“河南省網信系統2023年度網絡安全技術支撐單位名單”&#xff0c;中睿天下憑借出色的網絡安全技術能力和優勢成功入選。 本次遴選由河南省委網信辦會同國家計算機網絡與信息安全管理中心河南分中心&#xff08;以下簡稱安全中心河南分中心…

持續輸出:自媒體持續輸出文字內容、視音頻創作(視頻課程、書籍章節)

以下是自媒體持續輸出文字內容、視音頻創作的最佳方法&#xff1a; 靈感來源&#xff1a;尋找靈感來源是自媒體創作的重要一環。可以從日常生活、網絡熱點、行業動態等方面尋找創作靈感。 確定主題&#xff1a;在確定主題的時候&#xff0c;需要根據讀者和觀眾的需求&#xff…

Zebec Protocol 將進軍尼泊爾市場,通過 Zebec Card 推動地區金融平等

流支付正在成為一種全新的支付形態&#xff0c;Zebec Protocol 作為流支付的主要推崇者&#xff0c;正在積極的推動該支付方案向更廣泛的應用場景拓展。目前&#xff0c;Zebec Protocol 成功的將流支付應用在薪酬支付領域&#xff0c;并通過收購 WageLink 將其納入旗下&#xf…

Pytest測試框架3

目錄&#xff1a; pytest結合數據驅動-yamlpytest結合數據驅動-excelpytest結合數據驅動-csvpytest結合數據驅動-jsonpytest測試用例生命周期管理&#xff08;一&#xff09;pytest測試用例生命周期管理&#xff08;二&#xff09;pytest測試用例生命周期管理&#xff08;三&a…

CMake 配置 Vulkan 出現鏈接失敗,找不到 vkEnumerateInstanceExtensionProperties 符號的錯誤的解決方法

使用 CMake 配置 glfw, glm 的時候&#xff0c;總是提示鏈接失敗&#xff0c;找不到 vkEnumerateInstanceExtensionProperties 符號 cmake_minimum_required(VERSION 3.4...3.27)if(${CMAKE_VERSION} VERSION_LESS 3.27)cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_…

UG NX二次開發(C#)-CAM-獲取刀具類型

文章目錄 1、前言2、UG NX中的刀具類型3、獲取刀具類型3.1 刀具類型幫助文檔1、前言 在UG NX的加工模塊,加工刀具是一個必要的因素,其包括了多種類型的類型,有銑刀、鉆刀、車刀、磨刀、成型刀等等,而且每種刀具所包含的信息也各不相同。想獲取刀具的信息,那就要知道刀具的…

2023最新水果編曲軟件FL Studio 21.1.0.3267音頻工作站電腦參考配置單及系統配置要求

音樂在人們心中的地位日益增高&#xff0c;近幾年音樂選秀的節目更是層出不窮&#xff0c;喜愛音樂&#xff0c;創作音樂的朋友們也是越來越多&#xff0c;音樂的類型有很多&#xff0c;好比古典&#xff0c;流行&#xff0c;搖滾等等。對新手友好程度基本上在首位&#xff0c;…

用Python畫多個圓圈代碼

編輯&#xff1a;2023-08-13 15:10 在Python中&#xff0c;我們可以使用turtle庫來繪制各種形狀&#xff0c;包括圓圈。這是一個相當基本的問題&#xff0c;但是對于新手程序員來說&#xff0c;它可能會很有用。在這篇文章中&#xff0c;我們將向你展示如何使用Python的turtle…