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

Leetcode 3523. Make Array Non-decreasing

  • Leetcode 3523. Make Array Non-decreasing
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3523. Make Array Non-decreasing

1. 解题思路

这一题思路上来说就是一个栈的问题,就是从后往前依次考察每一个元素,显然,当前位置要么被舍弃,要么被保留,但是无论如何其对应位置一定会留下一个至少不小于当前元素大小的新元素,因此,后续所有比起更小的元素都无法被保留。

由此,这就变成了一个标准的栈的问题,但是需要注意的是,如果完全使用栈,还是会出现超时的问题,因此我们对相同元素进行了合并,这样的话可以优化效率,使之可以通过全部测试。

2. 代码实现

给出python代码实现如下:

class Solution:def maximumPossibleSize(self, nums: List[int]) -> int:# n = len(nums)ans = []for x in nums[::-1]:while ans != [] and ans[0][0] < x:ans.pop(0)if ans == [] or ans[0][0] > x:ans.insert(0, (x, 1))else:ans[0] = (ans[0][0], ans[0][1] + 1)return sum([x[1] for x in ans])

提交代码评测得到:耗时356ms,占用内存37.8MB。

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

相关文章:

  • 【Vulkan 入门系列】创建交换链、图像视图和渲染通道(四)
  • Linux 常用指令用户手册
  • MySQL-锁机制3-意向共享锁与意向排它锁、死锁
  • 量子计算与经典计算融合:开启计算新时代
  • Spring Boot集成MongoDB及实战技巧与性能调优
  • 为何AI发展的终极战场将是Agent的竞争?
  • OpenGaussDB企业版部署
  • 第十六节:高频开放题-React与Vue设计哲学差异
  • 模拟实现memmove,memcpy,memset
  • 短视频电商新纪元:TikTok Shop全球蓝海争夺战进入关键窗口期
  • Datawhale AI春训营 TASK2 学习笔记
  • 简易Linux GPIO工具
  • vivo把三颗「主摄」放进了手机
  • 博客系统-RabbitMQ
  • 用键盘实现控制小球上下移动——java的事件控制
  • STM32单片机入门学习——第44节: [13-1] PWR电源控制
  • RAG框架精选2
  • Java优雅实现判空方法
  • 编码器---正交编码器
  • 【AI论文】对人工智能生成文本的稳健和细粒度检测
  • 【Rust 精进之路之第4篇-数据基石·上】标量类型:整数、浮点数、布尔与字符的精妙之处
  • 关于进程状态
  • QEMU源码全解析 —— 块设备虚拟化(20)
  • Linux——SSH
  • FTP客户端实现(文件传输)
  • AI提效思考 - 第一期
  • 区块链预言机(Oracle)详解:如何打通链上与现实世界的关键桥梁?
  • HeavyKeeper 算法
  • ESP32快速上手
  • 使用 Visual Studio 2022 中的 .http 文件