>Java >java지도 시간 >LeetCode Day동적 프로그래밍

LeetCode Day동적 프로그래밍

王林
王林원래의
2024-07-19 17:41:52712검색

LeetCode DayDynamic Programming

198. 집 강도

당신은 거리의 집을 털려는 전문 강도입니다. 각 집에는 일정 금액의 돈이 숨겨져 있으며, 각각의 집에서 물건을 강탈하는 것을 막는 유일한 제약은 인접한 집에 보안 시스템이 연결되어 있고 같은 밤에 인접한 두 집에 침입한 경우 자동으로 경찰에 신고된다는 것입니다.

각 집의 돈을 나타내는 정수 배열 숫자가 주어지면, 오늘 밤 경찰에 신고하지 않고 도둑질할 수 있는 최대 돈을 반환하세요.

예 1:

입력: 숫자 = [1,2,3,1]
출력: 4
설명: 1번 집(돈 = 1)을 털고 3번 집(돈 = 3)을 털었습니다.
도둑질할 수 있는 총 금액 = 1 + 3 = 4.
예시 2:

입력: 숫자 = [2,7,9,3,1]
출력: 12
설명: 도둑집 1(돈 = 2), 도둑집 3(돈 = 9), 도둑집 5(돈 = 1).
도둑질할 수 있는 총 금액 = 2 + 9 + 1 = 12.

제약사항:

1 <= nums.length <= 100
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으로 문의하세요.