当前位置:网站首页>LeetCode 213. Home raiding II daily question

LeetCode 213. Home raiding II daily question

2022-07-07 16:58:00 @Little safflower

Problem description

You are a professional thief , Plan to steal houses along the street , There is a certain amount of cash in every room . All the houses in this place are Make a circle , This means that the first house and the last house are next to each other . meanwhile , Adjacent houses are equipped with interconnected anti-theft system , If two adjacent houses are broken into by thieves on the same night , The system will automatically alarm .

Given an array of non negative integers representing the storage amount of each house , Count you Without triggering the alarm device , The maximum amount you can steal tonight .

Example  1:

Input :nums = [2,3,2]
Output :3
explain : You can't steal first 1 House No ( amount of money = 2), And then steal 3 House No ( amount of money = 2), Because they are next to each other .
Example 2:

Input :nums = [1,2,3,1]
Output :4
explain : You can steal first 1 House No ( amount of money = 1), And then steal 3 House No ( amount of money = 3).
     Maximum amount stolen = 1 + 3 = 4 .
Example 3:

Input :nums = [1,2,3]
Output :3
 

Tips :

1 <= nums.length <= 100
0 <= nums[i] <= 1000

source : Power button (LeetCode)
link :https://leetcode.cn/problems/house-robber-ii
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .

Java

class Solution {
    public int rob(int[] nums) {
        int n = nums.length;
        if(n == 1) return nums[0];
        if(n == 2) return Math.max(nums[0],nums[1]);

        return Math.max(getBenefit(nums,0,n - 2),getBenefit(nums,1,n - 1));
    }
    public int getBenefit(int[] nums,int left,int right){
        int first = nums[left];
        int second = Math.max(nums[left],nums[left + 1]);

        for(int i = left + 2;i <= right;i++){
            int temp = second;
            second = Math.max(second,nums[i] + first);
            first = temp;
        }
        return second;
    }
}

 

原网站

版权声明
本文为[@Little safflower]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071512071434.html