专栏首页专知【Leetcode 198】关关的刷题日记69 – Leetcode 198 House Robber

【Leetcode 198】关关的刷题日记69 – Leetcode 198 House Robber

关关的刷题日记69 – Leetcode 198 House Robber

题目

You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it will automatically contact the police if two adjacent houses were broken into on the same night.

Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.

题目的意思是小偷沿着一排街道抢劫房子,每个房子都有一定数额的钱,但是不可以抢相邻的房子,问可以抢到的最大的钱数。

思路

动态规划的题目:设re[i]是抢劫前i个房子获得的最大收益,那么可以分为第i个房子不被抢和第i个房子被抢两种情况:第i个房子不被抢,re[i]=re[i-1];第i个房子被抢,re[i]=re[i-2]+nums[i];状态转移方程re[i]=max(re[i-1], re[i-2]+nums[i])。

class Solution {public:
    int rob(vector<int>& nums) {
        int n=nums.size();
        if(n==0)
            return 0;
        if(n==1)
            return nums[0];
        if(n==2)
            return max(nums[0], nums[1]);
        int temp1=nums[0], temp2=max(nums[0],nums[1]), re;
        for(int i=2; i<n; i++)
        {
            re=max(temp1+nums[i],temp2);
            temp1=temp2;
            temp2=re;
        }
        return re;
    }};

以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。

本文分享自微信公众号 - 专知(Quan_Zhuanzhi),作者:关关

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-12-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关关的刷题日记05 —— Leetcode 217. Contains Duplicate 方法1和方法2

    题目 Leetcode 217. Contains Duplicate Given an array of integers, find if the arra...

    WZEARW
  • 【Leetcode 303】关关的刷题日记67–Leetcode 303 Range Sum Query – Immutable

    关关的刷题日记67 – Leetcode 303 Range Sum Query – Immutable 题目 Given an integer array n...

    WZEARW
  • 关关的刷题日记12——Leetcode 189. Rotate Array 方法1、2、3

    关小刷刷题12 – Leetcode 189. Rotate Array 方法1、2、3 题目 Rotate an array of n elements to...

    WZEARW
  • Golang洗牌算法

    主要思路为每次随机挑选一个值,放在数组末尾。然后在n-1个元素的数组中再随机挑选一个值,放在数组末尾,以此类推。注意,一定要设置随机种子,否则每次返回的值是一样...

    anakinsun
  • 【LeetCode每日一题】26. Remove Duplicates from Sorted Array

    Given a sorted array nums, remove the duplicates in-place such that each element...

    公众号-不为谁写的歌
  • Leetcode【31、162】

    这道题是给一个数组,表示一个排列。求比当前排列大的下一个排列。如果没有则返回最小排列。

    echobingo
  • Message Pool分析

    Android中,我们在线程之间通信传递通常採用Android的消息机制,而这机制传递的正是Message。

    蜻蜓队长
  • Python爬虫获取豆瓣TOP250电影详情

    偶然间看到豆瓣电影的TOP250榜单,于是突发奇想写了这个爬虫脚本。将通过爬取豆瓣电影TOP250的榜单列表获取电影详情页的URL,然后再爬取电影详情页URL中...

    泰坦HW
  • BAT码农的刷题日记01——高效面试算法题 | 逆序数为K的排列数量 629. K Inverse Pairs Array

    高效面试算法题 | 逆序数为K的排列数量 629. K Inverse Pairs Array ================================...

    WZEARW
  • 开机自动挂载磁盘

    JNingWei

扫码关注云+社区

领取腾讯云代金券