博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]House Robber
阅读量:2236 次
发布时间:2019-05-09

本文共 755 字,大约阅读时间需要 2 分钟。

解题思路:
动态规划问题,只有一个限制条件,一维,easy
边界条件:n = 0 , income = 0; n = 1, income = nums[0]; n = 2, income =max( nums[0], nums[1])
前条件:n >= 2
不变式:income[i] = max{ income[i-1], income[i-2] + nums[i] }

结束条件:遍历到最后 n  

class Solution {public:    int rob(vector
& nums) { if (nums.size() == 0){ return 0; } if (nums.size() == 1){ return nums[0]; } if (nums.size() == 2){ return max(nums[0], nums[1]); } vector
income; income.push_back(nums[0]); income.push_back(max(nums[0], nums[1])); for (int i = 2; i < nums.size(); ++i){ income.push_back(max(income[i-1], income[i-2] + nums[i])); } return income[income.size() - 1]; }};

转载地址:http://cjpbb.baihongyu.com/

你可能感兴趣的文章
Java面试题全集(上)
查看>>
Java面试题全集(中)
查看>>
值传递和引用传递
查看>>
什么情况下用+运算符进行字符串连接比调用StringBuilder对象的append方法连接字符串性能更好?
查看>>
怎么根据Comparable方法中的compareTo方法的返回值的正负 判断升序 还是 降序?
查看>>
理解事务的4种隔离级别
查看>>
常用正则匹配符号
查看>>
建议42: 让工具类不可实例化
查看>>
Java 异步机制与同步机制的区别
查看>>
hibernate的对象三种状态说明
查看>>
什么是N+1查询?
查看>>
Spring 接管 Hibernate 配置 延迟加载
查看>>
找出不在预定数组中的自然数
查看>>
String常见面试题
查看>>
直插,快排,堆排,归并排序的分析
查看>>
二叉树的各种操作(面试必备)
查看>>
oracle
查看>>
泛型与通配符详解
查看>>
BaseServiceImpl中的实现关键点
查看>>
Struts2中的session、request、respsonse获取方法
查看>>