mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
Merge pull request #172 from Mrchangchang/feature-0213
添加 0213打家劫舍II新增python3,JavaScript版本
This commit is contained in:
@ -122,8 +122,49 @@ class Solution {
|
|||||||
```
|
```
|
||||||
|
|
||||||
Python:
|
Python:
|
||||||
|
```Python
|
||||||
|
class Solution:
|
||||||
|
def rob(self, nums: List[int]) -> int:
|
||||||
|
if (n := len(nums)) == 0:
|
||||||
|
return 0
|
||||||
|
if n == 1:
|
||||||
|
return nums[0]
|
||||||
|
result1 = self.robRange(nums, 0, n - 2)
|
||||||
|
result2 = self.robRange(nums, 1, n - 1)
|
||||||
|
return max(result1 , result2)
|
||||||
|
|
||||||
|
def robRange(self, nums: List[int], start: int, end: int) -> int:
|
||||||
|
if end == start: return nums[start]
|
||||||
|
dp = [0] * len(nums)
|
||||||
|
dp[start] = nums[start]
|
||||||
|
dp[start + 1] = max(nums[start], nums[start + 1])
|
||||||
|
for i in range(start + 2, end + 1):
|
||||||
|
dp[i] = max(dp[i -2] + nums[i], dp[i - 1])
|
||||||
|
return dp[end]
|
||||||
|
```
|
||||||
|
|
||||||
|
javascipt:
|
||||||
|
```javascript
|
||||||
|
var rob = function(nums) {
|
||||||
|
const n = nums.length
|
||||||
|
if (n === 0) return 0
|
||||||
|
if (n === 1) return nums[0]
|
||||||
|
const result1 = robRange(nums, 0, n - 2)
|
||||||
|
const result2 = robRange(nums, 1, n - 1)
|
||||||
|
return Math.max(result1, result2)
|
||||||
|
};
|
||||||
|
|
||||||
|
const robRange = (nums, start, end) => {
|
||||||
|
if (end === start) return nums[start]
|
||||||
|
const dp = Array(nums.length).fill(0)
|
||||||
|
dp[start] = nums[start]
|
||||||
|
dp[start + 1] = Math.max(nums[start], nums[start + 1])
|
||||||
|
for (let i = start + 2; i <= end; i++) {
|
||||||
|
dp[i] = Math.max(dp[i - 2] + nums[i], dp[i - 1])
|
||||||
|
}
|
||||||
|
return dp[end]
|
||||||
|
}
|
||||||
|
```
|
||||||
Go:
|
Go:
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user