2023-12-22 LeetCode每日一题(得到山形数组的最少删除次数)

2023-12-22每日一题

一、题目编号

1671. 得到山形数组的最少删除次数

二、题目链接

点击跳转到题目位置

三、题目描述

我们定义 arr 是 山形数组 当且仅当它满足:

  • arr.length >= 3
  • 存在某个下标 i (从 0 开始) 满足 0 < i < arr.length - 1 且:
    • arr[0] < arr[1] < … < arr[i - 1] < arr[i]
    • arr[i] > arr[i + 1] > … > arr[arr.length - 1]

给你整数数组 nums​ ,请你返回将 nums 变成 山形状数组 的​ 最少 删除次数。
示例 1:
在这里插入图片描述

示例 2:
在这里插入图片描述
提示:

  • 3 <= nums.length <= 1000
  • 1 <= nums[i] <= 109
  • 题目保证 nums 删除一些元素后一定能得到山形数组。

四、解题代码

class Solution {
public:int minimumMountainRemovals(vector<int>& nums) {int n = nums.size();vector<int> pre = getLISArray(nums);vector<int> suf = getLISArray({nums.rbegin(), nums.rend()});reverse(suf.begin(), suf.end());int ans = 0;for (int i = 0; i < n; ++i) {if (pre[i] > 1 && suf[i] > 1) {ans = max(ans, pre[i] + suf[i] - 1);}}return n - ans;}vector<int> getLISArray(const vector<int>& nums) {int n = nums.size();vector<int> dp(n, 1);for (int i = 0; i < n; ++i) {for (int j = 0; j < i; ++j) {if (nums[j] < nums[i]) {dp[i] = max(dp[i], dp[j] + 1);}}}return dp;}
};

五、解题思路

(1) 类似于最长递增子序列。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/588094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTPS面试题

HTTPS面试题 什么是HTTPS&#xff1f;它与HTTP有何不同&#xff1f; 答案&#xff1a;HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是一种通过加密和认证保护数据传输安全的HTTP协议。它使用SSL&#xff08;Secure Sockets Layer&#xff09;或TLS&#x…

Zookeeper-Zookeeper应用场景实战(二)

1. Zookeeper 分布式锁实战 1.1 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候&#xff0c;大家往往采用Synchronized&#xff08;同步&#xff09;或者其他同一个 JVM内Lock机制来解决多线程间的同步问题。在分布式集群工作的开发场景中&#xff0c;就需要 一种…

2024年【安全员-A证】考试内容及安全员-A证最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-A证考试内容参考答案及安全员-A证考试试题解析是安全生产模拟考试一点通题库老师及安全员-A证操作证已考过的学员汇总&#xff0c;相对有效帮助安全员-A证最新解析学员顺利通过考试。 1、【多选题】下列关于门…

配置yum镜像源

文章目录 前言一、配置yum源1.清除本地配置2.挂载镜像3.新增本地源配置4.加载本地yum源&测试 总结 前言 在内网环境的时候&#xff0c;yum无法正常连接互联网安装软件&#xff0c;这时候我们可以挂载系统镜像文件来下载。 一、配置yum源 1.清除本地配置 cp -rf /etc/yum…

2023年12月个人工作生活总结

本文为 2023 年 12 月工作生活总结。 研发编码 Sqlite3数据库已有表添加字段 需求&#xff1a;某工程因需要在数据库已有表添加一新字段&#xff0c;不影响原有结构。关键代码&#xff1a; 添加表名&#xff1a; ALTER TABLE <表名> ADD COLUMN <新字段> INTEGE…

DS|串应用

问题一&#xff1a;DS串应用 -- KMP算法 题目描述&#xff1a; 学习KMP算法&#xff0c;给出主串和模式串&#xff0c;求模式串在主串的位置 输入要求&#xff1a; 第一个输入t&#xff0c;表示有t个实例 第二行输入第1个实例的主串&#xff0c;第三行输入第1个实例的模式…

RHCE9学习指南 第13章 硬盘管理

新的硬盘首先需要对硬盘进行分区和格式化&#xff0c;首先了解一下硬盘的结构&#xff0c;如图13-1所示。 图13-1 磁盘上的磁道和扇区 硬盘的磁盘上有一个个的圈&#xff0c;每两个圈组成一个磁道。从中间往外发射线&#xff0c;把每个磁道分成一个个的扇区&#xff0c;每个扇…

Linux个人常用总结

1 文件操作 1.1 查看文件 ls ls -a&#xff1a;Linux上的文件以“.”开头的文件被系统视为隐藏文件&#xff0c;仅用ls命令是看不到他们的&#xff0c;而用ls -a除了显示 一般文件名外&#xff0c;连隐藏文件也会显示出来。ls -l&#xff1a;这个命令可以使用长格式显示文件内…

Python高级用法:生成器(generator)

生成器&#xff08;generator&#xff09; 生成器是一种返回生成序列的方法&#xff0c;与直接使用列表等方式返回序列的方式不同的是&#xff0c;他的生成可以是无限的。 生成器可以与next搭配使用&#xff0c;可以被看作是一种特殊的迭代器。 yield语句 yield一般与循环相…

机器学习的底层技术

机器学习的底层技术主要包括以下几个方面&#xff1a; 数学推导能力&#xff1a;机器学习依赖于数学理论和方法&#xff0c;例如线性代数、概率论、统计学等。数学推导能力可以帮助人们理解和推导机器学习算法的原理&#xff0c;进而应用于实际问题中。 数据结构和算法&#x…

vue的工作原理

获取内存中的(虚拟)dom树和新生成的(虚拟)dom树,通过diff算法进行对比,得到需要更新的DOM元素 这两颗(虚拟)DOM树都是框架模拟出来的,就是个对象,旧的会被保存在内存中 Vue.js 是一种用于构建用户界面的渐进式 JavaScript 框架。下面是 Vue.js 的工作原理概述&#xff1a; 声明…

“图解C语言:一维数组的声明、创建与初始化艺术“

各位少年&#xff1a; 标题&#xff1a;《C语言一维数组的探索之旅&#xff1a;从声明到初始化&#xff0c;及如何避免常见误区》 引言 在编程世界中&#xff0c;数组无疑是最基础且重要的数据结构之一&#xff0c;尤其在C语言中&#xff0c;它以其简洁明了的特性为各类数据处…

UDP套接字搭建简易服务器与客户端

使用UDP套接字搭建 文章目录 使用UDP套接字搭建前言一、基本结构二、使用步骤1.服务器端2.客户端 三、效果展示总结 前言 这次较上个版本《Python 网络编程之搭建简易服务器和客户端》https://only-me.blog.csdn.net/article/details/135251171增加了&#xff1a; UDP协议来进…

机器学习部分相关概念

数据集(Data Set)即数据的集合&#xff0c;每一条单独的数据被称为样本(Sample)。 对于每个样本&#xff0c;它通常具有一些属性(Attribute)或者特征(Feature)&#xff0c; 特征所具体取得值被称为特征值(Feature Value)。 西瓜数据集 色泽根蒂纹理青绿稍蜷模糊乌黑蜷缩清晰 …

Python编程-实现对自定义类对象排序

Python编程-实现对自定义类对象排序 具有不同标识的类的实例比较结果通常为不相等&#xff0c;除非类定义了 __eq__() 方法。 一个类的实例不能与相同类的其他实例或其他类型的对象进行排序&#xff0c;除非定义该类定义了足够多的方法&#xff0c;包括 __lt__(), __le__(), __…

学Python的正确顺序千万别弄反了,到时候后悔就来不及了

学Python的正确顺序&#xff1a;从基础到高级&#xff0c;步步为营 在当今数字化时代&#xff0c;Python已成为最受欢迎的编程语言之一。它不仅广泛应用于数据分析、人工智能和Web开发等领域&#xff0c;还为初学者提供了一个友好且功能强大的平台。然而&#xff0c;学习Python…

matalb实践(十二):减肥

1.题目 2.解答 2.1模型假设 1.体重增加正比于吸收的热量&#xff0c;平均每8000kcal增加体重1kg 2.身体正常代谢引起的体重减少正比于体重&#xff0c;每周每千克体重消耗热量一般在200kcal至320kcal之间&#xff0c;且因人而异&#xff0c;这相当于体重70kg的人每天消耗2000k…

【Spark精讲】一文讲透Spark RDD

MapReduce的缺陷 MR虽然在编程接口的种类和丰富程度上已经比较完善了&#xff0c;但这些系统普遍都缺乏操作分布式内存的接口抽象&#xff0c;导致很多应用在性能上非常低效 。 这些应用的共同特点是需要在多个并行操 作之间重用工作数据集 &#xff0c;典型的场景就是机器学习…

【强化学习】SARAS代码实现

前言 SARAS&#xff0c;假设环境状态和动作状态都是离散的。利用动作价值矩阵来进行行为的预测。其主要就是利用时序差分的思想&#xff0c;对动作价值矩阵进行更新。 代码实现 import gymnasium as gym import numpy as npclass sarsa():def __init__(self, states_n, acti…

Apollo自动驾驶:改变交通运输的游戏规则

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 ChatGPT体验地址 文章目录 前言1. Apollo缓存层2. 本地状态管理库3. 离线同步和冲突解决4. 离线数据同步和离线优先策略结论 &#x1f4f2;&#x1f50c; 构建离线应用&#xff1a;Apollo…