From 4a6e87f2f02c3d023c7ae2de7113abe808dd9a96 Mon Sep 17 00:00:00 2001 From: August <549392485@qq.com> Date: 2023年5月28日 23:57:29 +0800 Subject: [PATCH 1/5] =?UTF-8?q?Update=200034.=E5=9C=A8=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E4=B8=AD=E6=9F=A5=E6=89=BE=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E7=9A=84=E7=AC=AC=E4=B8=80=E4=B8=AA=E5=92=8C=E6=9C=80=E5=90=8E?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E4=BD=8D=E7=BD=AE.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...220円216円344円270円200円344円270円252円344円275円215円347円275円256円.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/problems/0034.345円234円250円346円216円222円345円272円217円346円225円260円347円273円204円344円270円255円346円237円245円346円211円276円345円205円203円347円264円240円347円232円204円347円254円254円344円270円200円344円270円252円345円222円214円346円234円200円345円220円216円344円270円200円344円270円252円344円275円215円347円275円256円.md" "b/problems/0034.345円234円250円346円216円222円345円272円217円346円225円260円347円273円204円344円270円255円346円237円245円346円211円276円345円205円203円347円264円240円347円232円204円347円254円254円344円270円200円344円270円252円345円222円214円346円234円200円345円220円216円344円270円200円344円270円252円344円275円215円347円275円256円.md" index 7e58a870d8..e5266cd9ea 100644 --- "a/problems/0034.345円234円250円346円216円222円345円272円217円346円225円260円347円273円204円344円270円255円346円237円245円346円211円276円345円205円203円347円264円240円347円232円204円347円254円254円344円270円200円344円270円252円345円222円214円346円234円200円345円220円216円344円270円200円344円270円252円344円275円215円347円275円256円.md" +++ "b/problems/0034.345円234円250円346円216円222円345円272円217円346円225円260円347円273円204円344円270円255円346円237円245円346円211円276円345円205円203円347円264円240円347円232円204円347円254円254円344円270円200円344円270円252円345円222円214円346円234円200円345円220円216円344円270円200円344円270円252円344円275円215円347円275円256円.md" @@ -240,7 +240,7 @@ class Solution { while (left - 1>= 0 && nums[left - 1] == nums[index]) { // 防止数组越界。逻辑短路,两个条件顺序不能换 left--; } - // 向左滑动,找右边界 + // 向右滑动,找右边界 while (right + 1 < nums.length && nums[right + 1] == nums[index]) { // 防止数组越界。 right++; } From b2812eb707d9e2c5382781b23d5add54e8e1db63 Mon Sep 17 00:00:00 2001 From: fwqaaq Date: 2023年5月29日 19:02:51 +0800 Subject: [PATCH 2/5] =?UTF-8?q?Update=200322.=E9=9B=B6=E9=92=B1=E5=85=91?= =?UTF-8?q?=E6=8D=A2.md=20about=20rust?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...66351円222円261円345円205円221円346円215円242円.md" | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git "a/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" "b/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" index 0e3947dad3..28188349ff 100644 --- "a/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" +++ "b/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" @@ -315,18 +315,24 @@ func min(a, b int) int { Rust: ```rust -pub fn coin_change(coins: Vec, amount: i32) -> i32 { - let amount = amount as usize; - let mut dp = vec![i32::MAX; amount + 1]; - dp[0] = 0; - for i in 0..coins.len() { - for j in coins[i] as usize..=amount { - if dp[j - coins[i] as usize] != i32::MAX { - dp[j] = dp[j].min(dp[j - coins[i] as usize] + 1); +// 遍历物品 +impl Solution { + pub fn coin_change(coins: Vec, amount: i32) -> i32 { + let amount = amount as usize; + let mut dp = vec![i32::MAX; amount + 1]; + dp[0] = 0; + for coin in coins { + for i in coin as usize..=amount { + if dp[i - coin as usize] != i32::MAX { + dp[i] = dp[i].min(dp[i - coin as usize] + 1); + } } } + if dp[amount] == i32::MAX { + return -1; + } + dp[amount] } - if dp[amount] == i32::MAX { -1 } else { dp[amount] } } ``` From f45d4718c39c6d932ef32ff190c01be839a7d18d Mon Sep 17 00:00:00 2001 From: fwqaaq Date: 2023年5月29日 19:10:46 +0800 Subject: [PATCH 3/5] =?UTF-8?q?Update=200322.=E9=9B=B6=E9=92=B1=E5=85=91?= =?UTF-8?q?=E6=8D=A2.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...66351円222円261円345円205円221円346円215円242円.md" | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git "a/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" "b/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" index 28188349ff..0f910451ed 100644 --- "a/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" +++ "b/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" @@ -336,6 +336,28 @@ impl Solution { } ``` +```rust +// 遍历背包 +impl Solution { + pub fn coin_change(coins: Vec, amount: i32) -> i32 { + let amount = amount as usize; + let mut dp = vec![i32::MAX; amount + 1]; + dp[0] = 0; + for i in 0..=amount { + for &coin in &coins { + if i>= coin as usize && dp[i - coin as usize] != i32::MAX { + dp[i] = dp[i].min(dp[i - coin as usize] + 1) + } + } + } + if dp[amount] == i32::MAX { + return -1; + } + dp[amount] + } +} +``` + Javascript: ```javascript const coinChange = (coins, amount) => { From 88f03c4abaf66141a2e507c746633af2cd93c7e6 Mon Sep 17 00:00:00 2001 From: fwqaaq Date: 2023年5月29日 23:26:49 +0800 Subject: [PATCH 4/5] =?UTF-8?q?Update=200322.=E9=9B=B6=E9=92=B1=E5=85=91?= =?UTF-8?q?=E6=8D=A2.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...66351円222円261円345円205円221円346円215円242円.md" | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git "a/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" "b/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" index 0f910451ed..7272b194c5 100644 --- "a/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" +++ "b/problems/0322.351円233円266円351円222円261円345円205円221円346円215円242円.md" @@ -343,7 +343,7 @@ impl Solution { let amount = amount as usize; let mut dp = vec![i32::MAX; amount + 1]; dp[0] = 0; - for i in 0..=amount { + for i in 1..=amount { for &coin in &coins { if i>= coin as usize && dp[i - coin as usize] != i32::MAX { dp[i] = dp[i].min(dp[i - coin as usize] + 1) @@ -360,6 +360,7 @@ impl Solution { Javascript: ```javascript +// 遍历物品 const coinChange = (coins, amount) => { if(!amount) { return 0; @@ -368,7 +369,7 @@ const coinChange = (coins, amount) => { let dp = Array(amount + 1).fill(Infinity); dp[0] = 0; - for(let i =0; i < coins.length; i++) { + for(let i = 0; i < coins.length; i++) { for(let j = coins[i]; j <= amount; j++) { dp[j] = Math.min(dp[j - coins[i]] + 1, dp[j]); } @@ -378,9 +379,26 @@ const coinChange = (coins, amount) => { } ``` +```javascript +// 遍历背包 +var coinChange = function(coins, amount) { + const dp = Array(amount + 1).fill(Infinity) + dp[0] = 0 + for (let i = 1; i <= amount; i++) { + for (let j = 0; j < coins.length; j++) { + if (i>= coins[j] && dp[i - coins[j]] !== Infinity) { + dp[i] = Math.min(dp[i], dp[i - coins[j]] + 1) + } + } + } + return dp[amount] === Infinity ? -1 : dp[amount] +} +``` + TypeScript: ```typescript +// 遍历物品 function coinChange(coins: number[], amount: number): number { const dp: number[] = new Array(amount + 1).fill(Infinity); dp[0] = 0; @@ -394,6 +412,23 @@ function coinChange(coins: number[], amount: number): number { }; ``` +```typescript +// 遍历背包 +function coinChange(coins: number[], amount: number): number { + const dp: number[] = Array(amount + 1).fill(Infinity) + dp[0] = 0 + for (let i = 1; i <= amount; i++) { + for (let j = 0; j < coins.length; j++) { + if (i>= coins[j] && dp[i - coins[j]] !== Infinity) { + dp[i] = Math.min(dp[i], dp[i - coins[j]] + 1) + } + } + } + return dp[amount] === Infinity ? -1 : dp[amount] +} +``` + +

From 2a61ec45e6366c35189ead2b08914104c1df672e Mon Sep 17 00:00:00 2001 From: Logen <47022821+logenleedev@users.noreply.github.com> Date: 2023年5月29日 17:38:31 -0500 Subject: [PATCH 5/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A4=8D=E6=9D=82?= =?UTF-8?q?=E5=BA=A6=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "problems/0047.345円205円250円346円216円222円345円210円227円II.md" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/problems/0047.345円205円250円346円216円222円345円210円227円II.md" "b/problems/0047.345円205円250円346円216円222円345円210円227円II.md" index b1908fb491..a1036b37ea 100644 --- "a/problems/0047.345円205円250円346円216円222円345円210円227円II.md" +++ "b/problems/0047.345円205円250円346円216円222円345円210円227円II.md" @@ -98,6 +98,8 @@ public: } }; +// 时间复杂度: 最差情况所有元素都是唯一的。复杂度和全排列1都是 O(n! * n) 对于 n 个元素一共有 n! 中排列方案。而对于每一个答案,我们需要 O(n) 去复制最终放到 result 数组 +// 空间复杂度: O(n) 回溯树的深度取决于我们有多少个元素 ``` ## 拓展

AltStyle によって変換されたページ (->オリジナル) /