LeetCode——2091. 从数组中移除最大值和最小值

通过万岁!!!

  • 题目:给你一个数组,然后把数组中的最大值和最小值给删掉。这里你可以理解为是一个双端队列进行移除,然后问你最少需要移除掉多少个元素。
  • 思路:第一步就是要先找到最大值的下标(maxIdx)和最小值的下标(minIdx),然后我们开始移除就好了。移除的方式有三种,一种是左边移除一部分,右边移除一部分;第二种是都从左边进行移除;第三种是都从右边进行移除。最终结果就是三种方式的最小值就好了。分别进行举例:
    • 第一种两边进行移除,直接来一个升序或者降序的数组就好了,那么结果就是从两边各移除一个元素,结果是2。这里需要注意因为我们知道了maxIdx和minIdx,所以在求结果的时候可以用length-abs(maxIdx-minIdx)+1。这里的绝对值是为了找到中间不需要删除的部分。这个+1,因为两边的元素都要移除,所以要+1,如果还是不理解,就找个demo试一下。
    • 第二种从左边进行移动,假设nums = {1, 10, 2, 3, 4, 5},那么结果就是max(maxIdx, minIdx)+1,这里+1是因为我们的下标是从0开始的。
    • 第三种从右边移动,假设nums = {2, 3, 4, 5, 1, 10},那么结果就是length-min(maxIdx, minIdx),这里不需要+1也是因为下标从0开始。
  • 技巧:数组遍历

java代码

java 复制代码
class Solution {
    public int minimumDeletions(int[] nums) {
        int max = nums[0], maxIdx = 0, min = nums[0], minIdx = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] > max) {
                max = nums[i];
                maxIdx = i;
            }
            if (nums[i] < min) {
                min = nums[i];
                minIdx = i;
            }
        }
        int lr = nums.length - Math.abs(maxIdx - minIdx) + 1;
        int ll = Math.max(maxIdx, minIdx) + 1;
        int rr = nums.length - Math.min(maxIdx, minIdx);
        return Math.min(Math.min(lr, ll), rr);
    }
}
  • 总结:题目不是特别难,主要是理解三种情况。其实第一种是两个情况的组合,是最大值在左边和在右边的时候,所以这里需要注意下。
相关推荐
别动我齐刘海3 分钟前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
Bs_MoneyMagnet5 分钟前
基于springboot+vue的非遗物质文化遗产系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
万物智能5 分钟前
波形发生AD9833模块配置—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
java
zhangfeng11339 分钟前
《从“人工适配“到“智能生成“:KernelSwift 跨国产芯片算子迁移全栈方案解读》 —— 强调范式跃迁和跨硬件属性,适合偏架构分析的写法
人工智能·算法·华为·ai编程·npu
0+11112 分钟前
算法 --滑动窗口
c++·算法·leetcode
计算机毕设定制辅导-无忧学长18 分钟前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台
Wang's Blog19 分钟前
Java 项目实战: 外卖平台-数据库环境搭建与十一张表结构解析
java·服务器·redis
白远山38 分钟前
上海24小时自助健身房系统软件开发实战指南
java·架构·uni-app·需求分析
泡海椒40 分钟前
jquick-pdf 表格实战:动态数据 PDF 报表生成
java·开发语言·pdf
reikocao1 小时前
大场景下 Hessian 特征值放大与退化检测
算法