برنامه نویسی پویا LeetCode Day33 – انجمن DEV

شما یک سارق حرفه ای هستید که قصد سرقت از خانه های کنار خیابان را دارید. در هر خانه مقدار مشخصی پول ذخیره شده است، تنها محدودیتی که شما را از سرقت از هر یک از آنها باز می دارد این است که خانه های مجاور دارای سیستم های امنیتی متصل هستند و اگر در همان شب به دو خانه مجاور حمله شود، به طور خودکار با پلیس تماس می گیرد.
با توجه به اعداد آرایهای صحیح که نشاندهنده مقدار پول هر خانه است، حداکثر مقدار پولی را که میتوانید امشب سرقت کنید، بدون اطلاع پلیس برگردانید.
مثال 1:
ورودی: nums = [1,2,3,1]خروجی: 4
توضیح: غارت خانه 1 (پول = 1) و سپس غارت خانه 3 (پول = 3).
کل مقداری که می توانید سرقت کنید = 1 + 3 = 4.
مثال 2:
ورودی: nums = [2,7,9,3,1]خروجی: 12
توضیح: غارت خانه 1 (پول = 2)، غارت خانه 3 (پول = 9) و سرقت از خانه 5 (پول = 1).
کل مقداری که می توانید سرقت کنید = 2 + 9 + 1 = 12.
محدودیت ها:
1 0 صفحه اصلی
public int rob(int[] nums) {
int[] dp = new int[nums.length+1];
dp[1] = nums[0];
for(int i=2; i