Skip to content

Commit a68a8ce

Browse files
committedDec 15, 2024
up exercise dynamic programming (medium question)
1 parent dd1d0e4 commit a68a8ce

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed
 
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
function rob(nums: number[]): number {
2+
3+
};
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2+
const caching: any = {}
3+
function rob(nums: number[]): number {
4+
if (nums.length == 0) return -1
5+
if (nums.length == 1) return nums[0]
6+
if (nums.length == 2) {
7+
if (nums[0] > nums[1]) {
8+
return nums[0]
9+
} else {
10+
return nums[1]
11+
}
12+
}
13+
caching[0] = nums[0]
14+
caching[1] = nums[1]
15+
let currentValue = 0
16+
let max = Math.max(nums[0], nums[1])
17+
for (let i = 2; i < nums.length; i++) {
18+
currentValue = nums[i] + caching[i - 2]
19+
if (currentValue > max) {
20+
max = currentValue
21+
}
22+
caching[i] = currentValue
23+
}
24+
25+
return max
26+
};
27+
28+
console.log(rob([1, 2, 3, 1]));
29+
console.log(rob([2, 7, 9, 3, 1]));
30+
console.log(rob([1, 3, 1]));
31+
console.log(rob([2, 1, 1, 2]));
32+
console.log(rob([2, 1, 1, 2, 4, 5])); // Nghĩa ngay đến recursive function và dynamic programming!

0 commit comments

Comments
 (0)