码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode0198.打家劫舍

时间:2020-05-29 13:40:38      阅读:46      评论:0      收藏:0      [点我收藏+]

标签:==   顺序   div   图片   alt   img   bsp   技术   solution   

题目要求

技术图片

 

 

 

算法分析

按照数组顺序偷,将每个房子累计可能偷到的最大值记录下来,

到第0个房子累计偷到的最大值Value[0] = nums[0]

到第1个房子累计偷到的最大值Value[1] = Max( Value[0],nums[1])

到第2个房子累计偷到的最大值Value[2] = Max( Value[1], Value[0]+nums[2])

到第3个房子累计偷到的最大值Value[3] = Max( Value[2], Value[1]+nums[3])

......

到第i个房子累计偷到的最大值Value[i] = Max( Value[i-1], Value[i-2]+nums[i])

 

Value数组可以不声明,因为Value[i-1],Value[i-2]的值可以用2个变量动态保存,减少空间复杂度

代码展示(C#)

public class Solution {
    public int Rob(int[] nums) {
        int n = nums.Length;
        if(n==0){return 0;}
        if(n==1){return nums[0];}

        int nonExcept = nums[0];
        int except = Math.Max(nums[1],nonExcept);
        for(int i = 2; i < n; i++){
            int temp = except;
            except = Math.Max(except,nonExcept+nums[i]);
            nonExcept = temp;
        }
        return except;
    }
}

 

提交结果

技术图片

 

LeetCode0198.打家劫舍

标签:==   顺序   div   图片   alt   img   bsp   技术   solution   

原文地址:https://www.cnblogs.com/KingR/p/12986854.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!