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

day-36 代码随想录算法训练营(19)part05

435.无重叠区间

思路:首先对数组排序,只需要关注重叠区间就行,有重叠时计数+1,然后更新当前右边界为重叠区间中的最小右边界。

763.划分字母区间

思路:记录每一个字母的最远位置,然后从头开始遍历,不断更新最远位置,当i等于最远位置时,说明这个区间内的字母在后面不会再出现;此时最远距离-起始位就是区间长度,然后更新起始位到下一位。

56.合并区间

思路:先对区间进行排序,临时空间保存第一个区间。然后判断是否重叠,存在重叠时更新临时空间最大右边界;不存在重叠时,把临时区间添加进结果,然后对临时空间清空,再保存当前区间,作为下一次判断的起始区间。

 746.使用最小花费爬楼梯

思路:每一可以爬一个楼梯或者两个楼梯,就在两种情况中找最小值
注意:每一个位置的花费当往上爬才累加
class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {int n=cost.size();int dp[n+1];dp[1]=dp[0]=0;//第一步是不需要花费的for(int i=2;i<=n;i++){dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);//每一个位置的花费都加上了}return dp[n];}
};

62.不同路径

思路:
  • 1.首先确定dp存储的是,到达第 i 个位置的所有路径数
  • 2.初始化,第一行和第一列的每个位置都只有一条路径到达
  • 3.递推式   dp[i][j]+=dp[i][j-1]+dp[i-1][j] (累加是因为每到一个位置,路径的数量都在递增)
  • 4.遍历顺序:直接从前往后遍历
class Solution {
public:int uniquePaths(int m, int n) {vector<vector<int>>dp(m,vector<int>(n,0));for(int i=0;i<n;i++)//第一行每个位置都只有一种走法dp[0][i]=1;for(int i=0;i<m;i++)//第一列每个位置都只有一种走法dp[i][0]=1;for(int i=1;i<m;i++){for(int j=1;j<n;j++){dp[i][j]+=dp[i][j-1]+dp[i-1][j];//每个位置只有从左边来和上边来}}return dp[m-1][n-1];}
};

http://www.lryc.cn/news/147499.html

相关文章:

  • Vue3 实现JS动态改变CSS样式
  • 最新社区团购电商小程序源码 无bug完美运营版+详细搭建部署教程
  • 恒运资本:三大指数震荡走低,地产股大幅回撤,光刻胶概念逆市上涨
  • DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例
  • 现货黄金走势图中的止盈点
  • MyBatisPlus实现多租户功能
  • JAVA-斐波那契数列
  • keepalived+lvs(DR)
  • 基于Matlab实现频谱分析(附上源码+数据集)
  • 【Java】多线程(进阶)
  • BMP图片读写实践:rgb转bgr
  • 交通科技与管理杂志社交通科技与管理编辑部2023年第9期目录
  • 根据源码,模拟实现 RabbitMQ - 网络通讯设计,实现客户端Connection、Channel(完结)
  • The Cube++ Illumination Estimation Dataset 文章总结
  • “烧钱”的大模型,如何迈过存储这道坎?
  • UNIX网络编程卷一 学习笔记 第二十九章 数据链路访问
  • WebGIS的一些学习笔记
  • java Spring Boot将不同配置拆分入不同文件管理
  • Docker(三) 创建Docker镜像
  • Linux操作系统--shell编程(正则表达式)
  • k8s的service mesh功能有那些
  • 【数据库技术】NineData数据复制,加速实时数仓构建
  • Kotlin入门1. 语法基础
  • MVCC简介、工作流程、优缺点
  • pandas由入门到精通-pandas的数据结构
  • jenkins+ssh+Putty构建windows的IIS服务发布
  • 服务器和普通电脑有何区别?43.248.189.x
  • Zookeeper的使用
  • 【实用 Python 库】使用 XPath 与 lxml 模块在 Python 中高效解析 XML 与 HTML
  • 数据库的基本概念