House Robber
来源:互联网 发布:linux oracle安装教程 编辑:程序博客网 时间:2024/06/13 08:37
代码如下,注释部分为递归版本,在OJ上运行超时,在本地正常,所以选择迭代版本。
代码如下:
#include<iostream>#include<vector>using namespace std;class Solution {public: int rob(vector<int>& nums) { int hasFinal, exceptFinal; if(nums.size() == 0) return 0; if(nums.size() == 1) return nums[0]; if(nums.size() == 2) { if(nums[0] > nums[1]) return nums[0]; else return nums[1]; } int tmp1, tmp2; int maxNM1 = max(nums[0], nums[1]); int maxNM2 = nums[0]; int maxN; for(int i = 3; i <= nums.size(); i++) { if(i != 3) { maxNM2 = maxNM1; maxNM1 = maxN; } tmp1 = maxNM2 + nums[i - 1]; tmp2 = maxNM1; maxN = max(tmp1, tmp2); } return maxN; //recursive version /*int hasFinal, exceptFinal; if(nums.size() == 0) return 0; if(nums.size() == 1) return nums[0]; if(nums.size() == 2) { if(nums[0] > nums[1]) return nums[0]; else return nums[1]; } if(nums.size() == 3) { hasFinal = nums[0] + nums[2]; if(nums[0] > nums[1]) exceptFinal = nums[0]; else exceptFinal = nums[1]; if(hasFinal > exceptFinal) return hasFinal; else return exceptFinal; } //int hasFinal, exceptFinal; vector<int> arr1(nums.begin(), nums.end() - 2); vector<int> arr2(nums.begin(), nums.end() - 1); hasFinal = rob(arr1) + *(nums.end() - 1); exceptFinal = rob(arr2); if(hasFinal > exceptFinal) return hasFinal; else return exceptFinal;*/ }};int main() { vector<int> arr; arr.push_back(5);arr.push_back(4);arr.push_back(1);arr.push_back(6); arr.push_back(57);arr.push_back(24);arr.push_back(48);arr.push_back(12); Solution solution; cout << solution.rob(arr) << endl; getchar();}
0 0
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- House Robber
- runtime原理
- innodb page页利用率
- 素数个数统计 使用位运算优化的 埃拉托色尼筛选法
- Power of Two
- Android开发之ScrollView中嵌套ListView的解决方案
- House Robber
- tomcat搭建
- CentOS操作系统的log日志
- 位操作(一)
- Leetcode#16 3Sum Closest
- hibernate学习总结
- 几种满足特定数学分布数据产生函数
- 使用spring配置多个数据源
- PASSION之CSS定位