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

LeetCode热题100——动态规划

动态规划

  • 1. 爬楼梯
  • 2. 杨辉三角
  • 3. 打家劫舍

1. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

// 题解:每次都有两种选择,1或者2
int climbStairs(int n) {if (n <= 0) return 0;vector<int> dp(n+1, 0);dp[0] = 1;dp[1] = 1;for (int i = 2; i <= n; ++i) {dp[i] = dp[i-1] + dp[i-2];}return dp[n];
}

2. 杨辉三角

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
在这里插入图片描述

// 题解:从第三层开始,累计和
vector<vector<int>> generate(int numRows) {vector<vector<int>> result(numRows);for (int i = 0; i < numRows; ++i) {result[i].resize(i+1);reult[i][0] = result[i][i] = 1;for (int j = 1; j < i; ++j) {result[i][j] = result[i-1][j] + result[i-1][j-1];}}return result;
}

3. 打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

// 题解:和上次结果比较,取最大值
int rob(vector<int>& nums) {int length = nums.size();if (length == 0) return 0;vector<int> dp(length+1, 0);dp[1] = nums[0];for (int i = 2; i <= length; ++i) {dp[i] = max(dp[i-1], dp[i-2] + nums[i-1]);}return dp[length];
}
http://www.lryc.cn/news/238330.html

相关文章:

  • 初识树(c语言)
  • 听GPT 讲Rust源代码--src/librustdoc(2)
  • 多目标应用:基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度(MATLAB)
  • 泉盛UV-K5/K6全功能中文固件
  • 基于JPBC的无证书聚合签名方案实现
  • FreeRTOS内存管理分析
  • hashMap索引原理
  • qcow2、raw、vmdk等镜像格式工具
  • GaussDB新特性Ustore存储引擎介绍
  • 人工智能基础_机器学习046_OVR模型多分类器的使用_逻辑回归OVR建模与概率预测---人工智能工作笔记0086
  • 【LeetCode刷题-链表】--23.合并K个升序链表
  • 强化学习笔记
  • 经典双指针算法试题(一)
  • MATLAB | 绘图复刻(十三) | 带NaN图例的地图绘制
  • netty整合websocket(完美教程)
  • 选择PC示波器的10种理由!
  • 【pytorch深度学习 应用篇02】训练中loss图的解读,训练中的问题与经验汇总
  • uniapp 微信小程序如何实现多个item列表的分享
  • .NET 8 正式 GA 遥遥领先
  • 2216. 美化数组的最少删除数 --力扣 --JAVA
  • DDD 领域驱动设计
  • 转型做视频了,博客就是稿子,继续坚持写博客,同时发布视频,能写博客说明思路清晰了,能再讲明白,理解就更透彻了,紧跟上时代发展。
  • 小众市场:探索跨境电商中的利基领域
  • C++中的mutable关键字
  • java: 无效的目标发行版: 17 问题解决
  • C#的LINQ查询
  • Python不会调试不够丝滑?那事你不会logging---剖析!
  • OpenAI的Whisper蒸馏:蒸馏后的Distil-Whisper速度提升6倍
  • Ubuntu18.04安装LeGO-LOAM保姆级教程
  • git修改commit历史提交时间、作者