首頁 >Java >java教程 >LeetCode Day動態編程

LeetCode Day動態編程

王林
王林原創
2024-07-19 17:41:52715瀏覽

LeetCode DayDynamic Programming

198.入室竊盜

你是一名職業強盜,計劃搶劫街道上的房屋。每棟房子都藏有一定數量的錢,唯一阻止你搶劫的限制是相鄰的房子都有安全系統連接,如果相鄰的兩棟房子在同一天晚上被闖入,它會自動聯繫警方。

給定一個代表每棟房子的金額的整數數組 nums,返回今晚你可以在不報警的情況下搶劫的最大金額。

範例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<dp.length; i++){
            dp[i] = Math.max(dp[i-2]+nums[i-1], dp[i-1]);
        }
        // System.out.println(Arrays.toString(dp));
        return dp[dp.length-1];

    }

以上是LeetCode Day動態編程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn