Skip to content

Commit 5948bce

Browse files
committed
update: 213
1 parent 14bf119 commit 5948bce

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ This is the solutions collection of my LeetCode submissions, most of them are pr
129129
| 207 | [Course Schedule](https://leetcode.com/problems/course-schedule/) | [JavaScript](./src/course-schedule/res.js) | Medium |
130130
| 209 | [Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/) | [JavaScript](./src/minimum-size-subarray-sum/res.js) | Medium |
131131
| 210 | [Course Schedule II](https://leetcode.com/problems/course-schedule-ii/) | [JavaScript](./src/course-schedule-ii/res.js) | Medium |
132+
| 213 | [house-robber-ii](https://leetcode.com/problems/house-robber-ii/) | [TypeScript](./src/house-robber-ii/res.ts) | Medium |
132133
| 215 | [Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/) | [JavaScript](./src/kth-largest-element-in-an-array/res.js) | Medium |
133134
| 217 | [Contains Duplicate](https://leetcode.com/problems/contains-duplicate/) | [JavaScript](./src/contains-duplicate/res.js) | Easy |
134135
| 219 | [Contains Duplicate II](https://leetcode.com/problems/contains-duplicate-ii/) | [JavaScript](./src/contains-duplicate-ii/res.js) | Easy |

src/house-robber-ii/res.ts

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
function internalRob(nums: number[]): number {
2+
if (!nums.length) {
3+
return 0;
4+
}
5+
6+
const dp: number[] = new Array(nums.length).fill(0);
7+
8+
for (let i = 0; i < nums.length; i++) {
9+
if (i === 0) {
10+
dp[i] = nums[i];
11+
} else if (i === 1) {
12+
dp[i] = Math.max(nums[i], dp[i-1]);
13+
} else {
14+
dp[i] = Math.max(nums[i] + dp[i-2], dp[i-1]);
15+
}
16+
}
17+
18+
return dp[nums.length-1];
19+
};
20+
21+
function rob(nums: number[]): number {
22+
if (!nums.length) {
23+
return 0;
24+
}
25+
26+
return Math.max(internalRob(nums.slice(1)), internalRob(nums.slice(2, nums.length-1)) + nums[0]);
27+
};

0 commit comments

Comments
 (0)