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

leetcode 2856. 删除数对后的最小数组长度

题目如下
在这里插入图片描述
数据范围
在这里插入图片描述
示例
在这里插入图片描述

我们假设存在一个出现频率最高的数a那么我们可以把这个数组分成三部分那么第一部分和第三部分必然可以消去一部分 然后它们剩下的和a再消去
当a的数量是数组的一半那么显然剩下的就是0
当a的数量大于数组的一半那么显然存在无法消去的a 剩2 * count - n
当a的数量小于数组的一半1.当n为偶数(可以画图因为a不足一半就意味着当数组分成两组时a不会相互重叠例如  0 1 2 2 3 4 中2不重叠 或者可以用第一部分消去第三部分会刚好剩下a的数量个数然后再和a消)那么可以消去全部即剩0
										  2.当n为奇数 同上剩1
											即取决于n的奇偶性

通过代码

class Solution {
public:
    int minLengthAfterRemovals(vector<int>& nums) {
        int n = nums.size();
        int ans = n % 2;
        int count = ranges::upper_bound(nums,nums[n/2]) - ranges::lower_bound(nums,nums[n/2]);//a的数量大于一半时n/2的位置上必然是a
        return max(2 * count - n,ans);//如果a的数量小于一半那么第一个小于零 
    }
};

在这里插入图片描述


http://www.kler.cn/a/530112.html

相关文章:

  • python小知识-jupyter lab
  • HTML 字符实体
  • 自然语言处理(NLP)入门:基础概念与应用场景
  • MoonBit 编译器(留档学习)
  • 想品客老师的第天:类
  • MySQL 如何深度分页问题
  • 【TypeScript】扩展:装饰器
  • 在Arm芯片苹果Mac系统上通过homebrew安装多版本mysql并解决各种报错,感谢deepseek帮助解决部分问题
  • Python 原子操作:使用 `atomic` 模块保证线程安全
  • web前端12--表单和表格
  • 科技快讯 | 领英“隐私风波”告一段落;华为余承东智驾 1345 公里返工,称智界 R7 打赢“鸡蛋保卫战”;谷歌翻译将增“提问”功能
  • 利用Spring Batch简化企业级批处理应用开发
  • 【漫话机器学习系列】075.隐含层(Hidden Layer)
  • Git如何避免推送.idea文件夹
  • 使用 vllm 搭建推理加速大模型服务
  • OpenAI 实战进阶教程 - 第二节:生成与解析结构化数据:从文本到表格
  • 想品客老师的第天:类
  • Java集合+并发(部分)
  • MultiResUNet学习笔记(2019 Neural Networks【SCI 1区】)
  • 用结构加法3ax+1预测第4点的分布
  • 掌握Spring MVC异常处理的艺术
  • ICLR 2025收录论文:为什么动作分块对于机器人灵活性至关重要?
  • makailio-alias_db模块详解
  • 蓝桥杯备考:六大排序算法
  • Hive重点面试题
  • #define,源文件与头文件,赋值表达式