Middle-题目58:213. House Robber II

原创 2016年05月31日 16:29:17

题目原文:
Note: This is an extension of House Robber.

After robbing those houses on that street, the thief has found himself a new place for his thievery so that he will not get too much attention. This time, all houses at this place are arranged in a circle. That means the first house is the neighbor of the last one. Meanwhile, the security system for these houses remain the same as for those in the previous street.
题目大意:
Easy-题目26,但是现在房子围成了环形,仍然求最大利益。
题目分析:
分第一家是否偷讨论,如果偷第一家,那么最后一家不能偷,则退化成第一家到倒数第二家的线性问题,如果不偷第一家,那么相当于从第二家到最后一家的线性问题。
源码:(language:c)

int rob(int* nums, int numsSize) {
    if(numsSize==0)
        return 0;
    else if(numsSize==1)
        return nums[0];
    else if(numsSize==2)
        return nums[0]>nums[1]?nums[0]:nums[1];
    else
        return max(rob1(nums,numsSize-1),rob1(nums+1,numsSize-1));
}
int max(int a,int b) {
    return a>b?a:b;
}
int rob1(int* nums, int numsSize) {
    if(numsSize==0)
        return 0;
    if(numsSize==1)
        return nums[0];
    else if(numsSize==2)
        return nums[0]>nums[1]?nums[0]:nums[1];
    else
    {
        int i;
        int dp1,dp2,dp;

        dp1=nums[0];
        dp2=nums[0]>nums[1]?nums[0]:nums[1];
        for(i=2;i<numsSize;i++)
        {
            dp=dp2>dp1+nums[i]?dp2:dp1+nums[i];
            dp1=dp2;
            dp2=dp;
        }
        return dp;
    }
}

成绩:
1ms,众数100%
Cmershen的碎碎念:
一开始想到对环上每个节点遍历一次,后来发现只讨论第一个节点即可。

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

House Robber(窃贼的计划)

You are a professional robber planning to rob houses along a street. Each house has a certain amount...
  • ajiangfan
  • ajiangfan
  • 2016年11月10日 21:08
  • 121

leetcode 213. House Robber II 入室抢劫 抢劫问题 + 一道经典的DP动态规划问题

Note: This is an extension of House Robber.After robbing those houses on that street, the thief has ...
  • JackZhang_123
  • JackZhang_123
  • 2017年09月21日 13:06
  • 98

House Robber【打家劫舍】【容易】

一、题目 英文:House Robber 中文:打家劫舍 二、内容要求 英文:You are a professional robber planning to rob houses al...
  • hitscutee
  • hitscutee
  • 2017年07月28日 11:58
  • 75

LeetCode 213. House Robber II 注意考察环尾和环头交叉处

213. House Robber II After robbing those houses on that street, the thief has found himself a new ...
  • wys2011101169
  • wys2011101169
  • 2017年06月20日 21:38
  • 120

关于LeetCode中House Robber一题的理解

题目如下: You are a professional robber planning to rob houses along a street. Each house has a cer...
  • zsy112371
  • zsy112371
  • 2016年09月14日 23:03
  • 169

算法题——House Robber(JAVA)

一个数组,不能取连续的两个值,求可得到和的最大值。
  • ivyusing
  • ivyusing
  • 2017年04月09日 22:41
  • 71

每周LeetCode算法题(七): 题目: 198. House Robber

每周LeetCode算法题(七)题目: 198. House Robber You are a professional robber planning to rob houses along a...
  • JacKnights
  • JacKnights
  • 2017年10月19日 12:42
  • 80

House Robber 动态规划的使用

题目链接:https://leetcode.com/problems/house-robber/ 简单归纳题目为:给定一组非负整数数组num,从中找值最大的子序列,要求子序列中任意两个元素在原数组中都...
  • jianjian1992
  • jianjian1992
  • 2015年04月09日 09:31
  • 413

58集团2017校招(第一次正规的笔试)

初入职场,这次58集团笔试让自己心态有很大的转变,感谢学姐给我这次内推的机会,也很感谢58。一直相信这句话:自信取决你踩过多少坑,自信来源于你对一件事认真重复了多少遍,共勉之。...
  • BD_Jiang
  • BD_Jiang
  • 2016年09月14日 09:54
  • 3935

动态规划解决leetcode中的House Robber问题

House Robber,leetcode, 动态规划
  • PinkFriday
  • PinkFriday
  • 2017年12月09日 09:56
  • 82
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目58:213. House Robber II
举报原因:
原因补充:

(最多只允许输入30个字)