【数据结构-堆】力扣1054. 距离相等的条形码

news/2025/1/22 7:26:54/

在一个仓库里,有一排条形码,其中第 i 个条形码为 barcodes[i]。

请你重新排列这些条形码,使其中任意两个相邻的条形码不能相等。 你可以返回任何满足该要求的答案,此题保证存在答案。

示例 1:
输入:barcodes = [1,1,1,2,2,2]
输出:[2,1,2,1,2,1]

示例 2:
输入:barcodes = [1,1,1,1,2,2,3,3]
输出:[1,3,1,3,2,1,2,1]

提示:
1 <= barcodes.length <= 10000
1 <= barcodes[i] <= 10000

class Solution {
public:vector<int> rearrangeBarcodes(vector<int>& barcodes) {//条形码 数量unordered_map<int, int> counts;int n = barcodes.size();for(int i = 0; i < n; i++){counts[barcodes[i]]++;}priority_queue<pair<int, int>> q;for(auto &[x, cx] : counts){q.push({cx, x});}vector<int> res;while(q.size() > 1){auto [cx1, x1] = q.top();q.pop();auto [cx2, x2] = q.top();q.pop();res.push_back(x1);res.push_back(x2);cx1--;cx2--;if(cx1 > 0){q.push({cx1, x1});}if(cx2 > 0){q.push({cx2, x2});}}if(!q.empty()){res.push_back(q.top().second);}return res;}
};

这道题和力扣767方法一样,只不过这里由于条形码的种类较多,所以我们使用哈希表来存放,具体步骤参考主页力扣767


http://www.ppmy.cn/news/1565166.html

相关文章

Android开发,待办事项提醒App的设计与实现(个人中心页)

文章目录 1. 编写UI布局2. 实现逻辑3. 运行效果图3. 关于作者其它项目视频教程介绍 Android开发&#xff0c;待办事项提醒App的设计与实现&#xff1a; https://blog.csdn.net/jky_yihuangxing/article/details/145277956?spm1001.2014.3001.5501 1. 编写UI布局 fragment_mi…

WPS表格点亮选中单元格所在的行列及护眼模式

一、点亮选中单元格所在的行列 1、用WPS打开xls文件或新建一个xls文件。 2、点击右下角“阅读模式”十字型图标可打开点亮。 3、选择右侧的“倒置三角形&#xff0c;可选择点亮的颜色。 二、打开护眼模式 点击右下角的眼睛图标&#xff0c;可打开护眼模式 底变为绿色&#xff1…

Postgresql源码(140)理解PG的编译流程(make、Makefile、Makefile.global.in)

PG16 PG中使用的makefile看起来代码比较多&#xff0c;但是实际逻辑比较简单&#xff0c;这里做一些抽象总结。 总结 Makefile.global.in的$(recurse)宏自动生成了target&#xff0c;可以方便的进入内存目录进行编译。 all: all-common-recurse all-common-recurse: submak…

ANSYS HFSS 中的相控天线阵列仿真方法

概述 相控天线阵列系统广泛使用&#xff0c;从国防雷达应用到商业 5G 应用。设计这些天线阵列涉及复杂的数学运算&#xff0c;需要全波仿真。Ansys HFSS 全场 3D 电磁仿真软件可以在合理的时间内以较低的计算成本仿真复杂的相控阵天线系统&#xff0c;同时考虑复杂激励、环境&…

Python与Excel:开启自动化办公新时代

引言 在当今数字化办公的大环境下&#xff0c;日常工作中处理Excel表格的任务愈发频繁且繁杂。传统的手动操作不仅耗时费力&#xff0c;还容易出错。而Python作为一门功能强大且应用广泛的编程语言&#xff0c;为我们实现Excel办公自动化提供了高效的解决方案。借助Python的丰…

编译chromium笔记

编译环境&#xff1a; windows10 powershell7.2.24 git 2.47.1 https://storage.googleapis.com/chrome-infra/depot_tools.zip 配置git git config --global user.name "John Doe" git config --global user.email "jdoegmail.com" git config --global …

如何使用 Pytest -k 选项轻松筛选测试用例

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理&#xff0c;构建成功的基石 在自动化测试工作之前&#xff0c;你应该知道的10条建议 在自动化测试中&#xff0c;重要的不是工具 你是否曾不得不从成百上千个测试中费力筛选&#xff0c;只为运行几个特定的测试&am…

PHP语言的数据库编程

PHP语言的数据库编程 引言 随着互联网的发展&#xff0c;动态网站已成为主流&#xff0c;而动态网站的核心就是与数据库进行交互。PHP&#xff08;超文本预处理器&#xff09;是一种流行的开源服务器端脚本语言&#xff0c;被广泛用于Web开发。它以其简单易学和功能强大而受到…