Skip to content

Commit a682075

Browse files
committed
solution house-robber (#264)
#264
1 parent 86c8c3c commit a682075

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
*
3+
* @param {number[]} nums
4+
* @param nums
5+
*
6+
* ํ’€์ด
7+
* dp ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด nums ๋ฐฐ์—ด์˜ ๊ธธ์ด๋งŒํผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
8+
* dp[0]์€ nums[0]์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , dp[1]์€ nums[0]๊ณผ nums[1] ์ค‘ ํฐ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
9+
* dp[2]๋ถ€ํ„ฐ๋Š” dp[i] = Math.max(dp[i-1], dp[i-2] + nums[i])๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
10+
* dp[i-1]์€ i๋ฒˆ์งธ ์ง‘์„ ํ„ธ์ง€ ์•Š์€ ๊ฒฝ์šฐ, dp[i-2] + nums[i]๋Š” i๋ฒˆ์งธ ์ง‘์„ ํ„ธ๊ณ  i-1๋ฒˆ์งธ ์ง‘์„ ํ„ธ์ง€ ์•Š์€ ๊ฒฝ์šฐ์ด๋‹ค.
11+
*
12+
*/
13+
14+
function rob(nums: number[]): number {
15+
const n = nums.length
16+
if(n===0) return 0
17+
if(n===1) return nums[0];
18+
19+
let dp0 = nums[0]
20+
let dp1 = Math.max(nums[0], nums[1]);
21+
22+
for(let i=2;i<n;i++){
23+
const curMaxValue = Math.max(dp1, dp0 + nums[i]);
24+
dp0 = dp1;
25+
dp1 = curMaxValue;
26+
}
27+
28+
return dp1
29+
};

0 commit comments

Comments
ย (0)