当前位置: 首页 > ai >正文

力扣2道dp

198. 打家劫舍 - 力扣(LeetCode)

设前i+1间房能搜刮到的最高金额为dp[i]

对于dp[i],要么不更新,保持和dp[i-1]一样,要么更新,变为dp[i-2]+nums[i]。两者谁的值更大,决定是否更新。

class Solution 
{
public:int rob(vector<int>& nums) {int n=nums.size();if(n==1) return nums[0];vector<int>dp(n);//dp[i]表示前i+1间能搜刮的最高金额dp[0]=nums[0];dp[1]=max(nums[0],nums[1]);for(int i=2;i<n;i++){dp[i]=max(dp[i-1],nums[i]+dp[i-2]);}return dp[n-1];}
};

279. 完全平方数 - 力扣(LeetCode)

dp[i]表示最少需要多少个数的平方来表示整数i,显然这些数落在[1,sqrt(i)]内,我们可以枚举这些数。当枚举到j时,我们还需要取i-j^2,那么需要知道dp[i-j^2],由于子问题与原问题类似,因此使用动态规划。

class Solution
{
public:int numSquares(int n){vector<int>dp(n+1);for (int i = 1; i < n; i++){int minn = INT_MAX;for (int j = 1; j * j <= i; j++){minn = min(minn, dp[i - j * j]);//找出dp[i-j*j]中最小的那个}dp[i] = minn + 1;}return dp[n];}
};

http://www.xdnf.cn/news/18110.html

相关文章:

  • Rust 入门 生命周期-next2 (十九)
  • flask——4:请求与响应
  • Kubernetes(K8s)常用命令全解析:从基础到进阶
  • Unity进阶--C#补充知识点--【Unity跨平台的原理】Mono与IL2CPP
  • Disbursement on Quarantine Policy(概率、逆元计算期望)
  • 【深度学习】pytorch深度学习框架的环境配置
  • Ansible文件部署与大项目多主机管理
  • 学习嵌入式的第二十天——数据结构
  • redis-集成prometheus监控(k8s)
  • 实习两个月总结
  • 从0到1掌握 Spring Security(第三篇):三种认证方式,按配置一键切换
  • 传统方式部署(RuoYi-Cloud)微服务
  • 像素风球球大作战 HTML 游戏
  • vben admin 下拉支持收索
  • 谷粒商城项目-P3简介-分布式基础概念
  • 牛津大学xDeepMind 自然语言处理(1)
  • Mysql——前模糊索引失效原因及解决方式
  • C++多线程编程深度解析【C++进阶每日一学】
  • 部署 HAProxy 高可用
  • 将 iPhone 连接到 Windows 11 的完整指南
  • 蛋糕销售管理系统设计与实现
  • MongoDB Windows 系统实战手册:从配置到数据处理入门
  • 【MongoDB】多种聚合操作详解,案例分析
  • Handler以及AsyncTask知识点详解
  • 北斗气象站:能够实现气象数据的实时采集、传输与智能分析
  • 20. 云计算-云服务模型
  • 什么叫做 “可迭代的产品矩阵”?如何落地?​
  • 【前端面试题】JavaScript 核心知识点解析(第二十二题到第六十一题)
  • 使用 Zed + Qwen Code 搭建轻量化 AI 编程 IDE
  • Zookeeper 在 Kafka 中扮演了什么角色?