2023-09-16力扣每日一题-经典DP

链接:

198. 打家劫舍

题意

有n个数字,不能选取相邻的数字,求最终选取的最大

经典DP,由于每个数字有拿与不拿两种状态,所以DP[I]刚好使用一个max

拿,则DP[I-1]不能拿,为DP[I-2]+nums[i]

不拿,则DP[i-1]可以拿,为DP[i-1]

两者取max

实际代码:

c++ 复制代码
#include<bits/stdc++.h>
using namespace std;
int rob(vector<int>& nums)
{
	int lg=nums.size();
	if(lg==1) return nums[0];

	vector<int>dp(lg);
	dp[0]=nums[0];dp[1]=max(nums[0],nums[1]);

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

限制:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 400
相关推荐
FAFU_kyp17 分钟前
Rust 的 引用与借用
开发语言·算法·rust
永远都不秃头的程序员(互关)18 分钟前
【K-Means深度探索(一)】数据炼金术第一步:从零手撕K-Means聚类算法
算法·kmeans·聚类
我想回家种地20 分钟前
算法期末复习
算法
rgeshfgreh39 分钟前
MPPI算法实战:运动规划新利器
算法
Xの哲學41 分钟前
Linux epoll 深度剖析: 从设计哲学到底层实现
linux·服务器·网络·算法·边缘计算
小猪咪piggy1 小时前
【leetcode100】回溯
数据结构·算法
m0_603888711 小时前
More Images, More Problems A Controlled Analysis of VLM Failure Modes
人工智能·算法·机器学习·ai·论文速览
恶魔泡泡糖1 小时前
51单片机矩阵按键
c语言·算法·矩阵·51单片机
叶子2024221 小时前
电力系统分析---对称分量法
算法
圣保罗的大教堂2 小时前
leetcode 3453. 分割正方形 I 中等
leetcode