diff --git "a/problems/0198.346円211円223円345円256円266円345円212円253円350円210円215円.md" "b/problems/0198.346円211円223円345円256円266円345円212円253円350円210円215円.md" index bed7a4eabd..80902559a6 100644 --- "a/problems/0198.346円211円223円345円256円266円345円212円253円350円210円215円.md" +++ "b/problems/0198.346円211円223円345円256円266円345円212円253円350円210円215円.md" @@ -314,7 +314,24 @@ function rob(nums: number[]): number { }; ``` +Rust: +```rust +impl Solution { + pub fn rob(nums: Vec) -> i32 { + if nums.len() == 1 { + return nums[0]; + } + let mut dp = vec![0; nums.len()]; + dp[0] = nums[0]; + dp[1] = nums[0].max(nums[1]); + for i in 2..nums.len() { + dp[i] = (dp[i - 2] + nums[i]).max(dp[i - 1]); + } + dp[nums.len() - 1] + } +} +```

diff --git "a/problems/0257.344円272円214円345円217円211円346円240円221円347円232円204円346円211円200円346円234円211円350円267円257円345円276円204円.md" "b/problems/0257.344円272円214円345円217円211円346円240円221円347円232円204円346円211円200円346円234円211円350円267円257円345円276円204円.md" index 7bd56fbd0d..061535072d 100644 --- "a/problems/0257.344円272円214円345円217円211円346円240円221円347円232円204円346円211円200円346円234円211円350円267円257円345円276円204円.md" +++ "b/problems/0257.344円272円214円345円217円211円346円240円221円347円232円204円346円211円200円346円234円211円350円267円257円345円276円204円.md" @@ -390,6 +390,8 @@ public: ```Java //解法一 + +//方式一 class Solution { /** * 递归法 @@ -428,9 +430,32 @@ class Solution { } } } + +//方式二 +class Solution { + + List result = new ArrayList(); + + public List binaryTreePaths(TreeNode root) { + deal(root, ""); + return result; + } + + public void deal(TreeNode node, String s) { + if (node == null) + return; + if (node.left == null && node.right == null) { + result.add(new StringBuilder(s).append(node.val).toString()); + return; + } + String tmp = new StringBuilder(s).append(node.val).append("->").toString(); + deal(node.left, tmp); + deal(node.right, tmp); + } +} ``` ```java -// 解法2 +// 解法二 class Solution { /** * 迭代法 diff --git "a/problems/0279.345円256円214円345円205円250円345円271円263円346円226円271円346円225円260円.md" "b/problems/0279.345円256円214円345円205円250円345円271円263円346円226円271円346円225円260円.md" index e32e88354f..70ab8649fd 100644 --- "a/problems/0279.345円256円214円345円205円250円345円271円263円346円226円271円346円225円260円.md" +++ "b/problems/0279.345円256円214円345円205円250円345円271円263円346円226円271円346円225円260円.md" @@ -177,15 +177,19 @@ class Solution { for (int j = 0; j <= n; j++) { dp[j] = max; } + //如果不想要寫for-loop填充數組的話,也可以用JAVA內建的Arrays.fill()函數。 + //Arrays.fill(dp, Integer.MAX_VALUE); + //当和为0时,组合的个数为0 dp[0] = 0; // 遍历物品 for (int i = 1; i * i <= n; i++) { // 遍历背包 for (int j = i * i; j <= n; j++) { - if (dp[j - i * i] != max) { + //if (dp[j - i * i] != max) { dp[j] = Math.min(dp[j], dp[j - i * i] + 1); - } + //} + //不需要這個if statement,因爲在完全平方數這一題不會有"湊不成"的狀況發生( 一定可以用"1"來組成任何一個n),故comment掉這個if statement。 } } return dp[n];

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