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
相关推荐
罗湖老棍子9 小时前
【例 1】Sightseeing Trip(信息学奥赛一本通- P1494)(洛谷-P10927)
数据结构·算法·图论·最短路·floyd·最小环
文丑颜不良啊9 小时前
LeetCode201~225题目解析
java·leetcode
stsdddd11 小时前
YOLO算法建筑工地安全帽目标检测数据集16881张:标注核对笔记
算法·yolo·目标检测
CV爱数码12 小时前
论文精读|Learned Primal-Dual:把原始–对偶算法展开成网络
图像处理·算法·计算机视觉·ct·重建·断层扫描
yuniko-n12 小时前
【算法】约瑟夫环问题
java·算法
l1t12 小时前
测试DuckDB v2.1.0-alpha49002的bignum乘法
数据库·sql·算法·duckdb
Nil20813 小时前
LeetCode 283移动零
数据结构·算法·leetcode
CQU_JIAKE13 小时前
10.18【A】
算法
LMT流氓兔13 小时前
第五单元——第4课:给工具参数加校验
java·前端·算法·ai·langchain
文丑颜不良啊14 小时前
LeetCode226~250题目解析
java·leetcode