mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
Update 0213.打家劫舍II.md
0213.打家劫舍||新增C语言实现
This commit is contained in:
@ -308,6 +308,34 @@ function robRange(nums: number[], start: number, end: number): number {
|
||||
}
|
||||
```
|
||||
|
||||
### C
|
||||
|
||||
```c
|
||||
#define max(a, b) ((a) > (b) ? (a) : (b))
|
||||
|
||||
// 198.打家劫舍的逻辑
|
||||
int robRange(int* nums, int start, int end, int numsSize) {
|
||||
if (end == start) return nums[start];
|
||||
int dp[numsSize];
|
||||
dp[start] = nums[start];
|
||||
dp[start + 1] = max(nums[start], nums[start + 1]);
|
||||
for (int i = start + 2; i <= end; i++) {
|
||||
dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
|
||||
}
|
||||
return dp[end];
|
||||
}
|
||||
|
||||
int rob(int* nums, int numsSize) {
|
||||
if (numsSize == 0) return 0;
|
||||
if (numsSize == 1) return nums[0];
|
||||
int result1 = robRange(nums, 0, numsSize - 2, numsSize); // 情况二
|
||||
int result2 = robRange(nums, 1, numsSize - 1, numsSize); // 情况三
|
||||
return max(result1, result2);
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Rust:
|
||||
|
||||
```rust
|
||||
@ -343,4 +371,3 @@ impl Solution {
|
||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||
</a>
|
||||
|
||||
|
Reference in New Issue
Block a user