(leetcode 213 打家劫舍ii)

代码随想录:

将一个线性数组换成两个线性数组(去掉头,去掉尾)

分别求两个线性数组的最大值

最后求这两个数组的最大值

代码随想录视频

cpp 复制代码
#include<iostream>
#include<vector>
#include<algorithm>
//nums:2,1,1,2
//dp:2,2,3,4
using namespace std;

int rop(vector<int> &nums)
{
	
	vector<int>dp(nums.size(), 0);
	dp[0] = nums[0];
	dp[1] = max(nums[1], nums[0]);

	for (int i = 2;i < nums.size();i++)
	{
		dp[i] = max(dp[i - 1], dp[i - 2] + nums[i]);
	}
	return dp[nums.size()-1];
}

int main()
{
	vector<int>nums = { 1,2,3,1 };

	if (nums.size() == 1)
	{
		cout << nums[0];
		return 0;
	}
	if (nums.size() == 2)
	{
		cout << max(nums[0],nums[1]);
		return 0;
	}
	vector<int>nums1(nums.begin() + 0, nums.end() - 1);
	vector<int>nums2(nums.begin() + 1, nums.end());


	cout << max(rop(nums1),rop(nums2));
	return 0;
}
相关推荐
IronMurphy6 小时前
【算法四十三】279. 完全平方数
算法
墨染天姬6 小时前
【AI】Hermes的GEPA算法
人工智能·算法
papership7 小时前
【入门级-数据结构-3、特殊树:完全二叉树的数组表示法】
数据结构·算法·链表
smj2302_796826527 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
山甫aa7 小时前
差分数组 ----- 从零开始的数据结构
数据结构
早日退休!!!7 小时前
《数据结构选型指南》笔记
数据结构·数据库·oracle
Beginner x_u8 小时前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
丑八怪大丑8 小时前
Java数据结构与集合源码
数据结构
_深海凉_11 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
踩坑记录12 小时前
leetcode hot100 寻找两个正序数组的中位数 hard 二分查找 双指针
leetcode