2023-09-17力扣每日一题

链接:

213. 打家劫舍 II

题意

n个数字围成一圈,禁止取相邻,求能取到的最大值

经典DP+特判/一丢丢思维

可以开个bool判断第一个取没取,然后判断最后一个,同样,再倒着做一遍即可

思维:把0到lg-2 和 1到lg-1各做一遍即可

实际代码:

c++ 复制代码
#include<bits/stdc++.h>
using namespace std;
int rob(vector<int>& nums)
{
	int lg=nums.size();
	vector<int>nums1(lg),nums2(lg);
	if(lg==1) return nums[0];
	if(lg==2) return max(nums[0],nums[1]);
	
	nums1[0]=nums[0];nums1[1]=max(nums[0],nums[1]);
	for(int i=2;i<lg-1;i++)
	{
		nums1[i]=max(nums1[i-1],nums1[i-2]+nums[i]);
	}
	nums2[1]=nums[1];nums2[2]=max(nums[1],nums[2]);
	for(int i=3;i<lg;i++)
	{
		nums2[i]=max(nums2[i-1],nums2[i-2]+nums[i]);
	}
	
	return max(nums1[lg-2],nums2[lg-1]);
}

限制:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 1000
相关推荐
报错小能手29 分钟前
刷题日常 5 二叉树最大深度
算法
Greedy Alg1 小时前
LeetCode 84. 柱状图中最大的矩形(困难)
算法
im_AMBER1 小时前
Leetcode 52
笔记·学习·算法·leetcode
小欣加油1 小时前
leetcode 946 验证栈序列
c++·算法·leetcode·职场和发展
包饭厅咸鱼1 小时前
PaddleOCR----制作数据集,模型训练,验证 QT部署(未完成)
算法
无敌最俊朗@2 小时前
C++ 并发与同步速查笔记(整理版)
开发语言·c++·算法
王哈哈^_^2 小时前
【完整源码+数据集】课堂行为数据集,yolo课堂行为检测数据集 2090 张,学生课堂行为识别数据集,目标检测课堂行为识别系统实战教程
人工智能·算法·yolo·目标检测·计算机视觉·视觉检测·毕业设计
夏鹏今天学习了吗2 小时前
【LeetCode热题100(66/100)】寻找两个正序数组的中位数
算法·leetcode·职场和发展
墨染点香2 小时前
LeetCode 刷题【151. 反转字符串中的单词】
算法·leetcode·职场和发展