惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
MyScale Blog
MyScale Blog
博客园 - Franky
The Cloudflare Blog
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
WordPress大学
WordPress大学
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
The Blog of Author Tim Ferriss
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed
Martin Fowler
Martin Fowler
aimingoo的专栏
aimingoo的专栏
J
Java Code Geeks
腾讯CDC
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
博客园 - 【当耐特】
美团技术团队
云风的 BLOG
云风的 BLOG

博客园 - 新西兰程序员

C++ 构造函数中的初始化参数列表initializer list C++中的线程thread,以及C++11中的std::atomic学习 Leetcode56 Merge Intervals 合并区间 -- C++实现 C++中的内存对齐 C++中的static关键字使用以及全局变量 C++17中的结构化绑定Structured Binding C++中的函数参数是指针类型, 是按值传递 C++中异常处理机制中的栈展开stack unwinding C++实现链表反转 Linux中的性能分析工具 perf 来分析C++性能 C++17中新建一个类时,编译器默认生成的类成员函数 QT中的元对象系统 Leetcode 114 - 二叉树展开为链表 Leetcode65 有效数字 - 判断给定的字符串是否是一个有效数字 C#中的委托详解 C++中的std::function C++中的仿函数Functor C++中的const和constexpr异同比较 C++中的左值和右值,以及右值引用,移动语义 C++中传递参数是指针类型以及传入参数是指针的指针(**)详解 C++中GetTickCount函数学习 C++中以类的成员函数作为Windows callback函数需要设置成static函数 C#中的System.Security.SecureString学习 C++中的悬挂指针和野指针 C++中四种不同的对象生存方式(in stack, in heap, global, local static) C#中使用Parallel类来进行多线程并发编程 String类型转LPCTSTR -----理解C++中的字符串类型转换 C++中的虚函数和虚函数表 C++中基类指针指向派生类对象 数据结构 - 栈的学习
LettCode2289-Steps to Make Array Non-descreasing
新西兰程序员 · 2025-05-08 · via 博客园 - 新西兰程序员

这个题目是这样的,就是说给你一个数组,一个下标从0开始的整数数组nums.

在一步操作中,移除所有满足 nums[i-1] > nums[i] 的 nums[i], 其中 0 < i < nums.length

重复执行上面的步骤,直到数组nums变成 非递减 数组,返回所需执行的操作数

例子1:

输入:  nums = [5,3,4,4,7,3,6,11,8,5,11]
输出; 3
解释说明:  执行下述几个步骤:

step 1:  [5,3,4,4,7,3,6,11,8,5,11] 变成 [5,4,4,7,6,11,11] 在第1步操作中,比较数组中相邻的2个数
第二个数3比第一个5小,第六个数3比第五个数7小,第十个数5比第九个数8小,第九个数8比第八个数11小 => 把这几个小的数3,3,5,8都移除掉 step
2: [5,4,4,7,6,11,11] 变成 [5,4,7,11,11]
step 3: [5,4,7,11,11] 变成 [5,7,11,11]
[5,7,11,11]是一个完全的非递减数组,整个过程经历了3个步骤,所以返回3

 在step 1中有一个点不知道你注意到没,就是比较时,一定要从后往前来进行比较,也就是从数组的最后一位,往前面进行相邻的比较。而不能够从数组的第一位开始进行相邻的比较. 为什么呢,我们看数组中的 后面4位 [11,8,5,11] 如果从前往后,就会变成[11,5,11], 但如果从后往前,就会变成 [11,11]