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

1054. 距离相等的条形码(leetcode,堆问题,priority_queue)-------------------c++实现

1054. 距离相等的条形码(leetcode,堆问题,priority_queue)-------------------c++实现

题目表述

在一个仓库里,有一排条形码,其中第 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

思路

先通过unordered_map记录各个数出现的个数,然后通过priority进行堆排序,每次在可允许输出的情况下(前一个数不是当前最大数||当前为空)先输出最大值。

注意点

ac代码

c++:

class Solution {
public:vector<int> rearrangeBarcodes(vector<int>& barcodes) {unordered_map<int,int> number_time;vector<int> result;for(auto x:barcodes)number_time[x]++;priority_queue<pair<int,int>> members;for(auto &x:number_time)members.push({x.second,x.first});while(members.size()){auto now = members.top();//answer writing//auto [x,cx] = members.top();members.pop();// cout<<now.first<<"  "<<now.second<<" ";if(result.empty()||now.second!=result[result.size()-1])//can sit the biggest member{result.push_back(now.second);now.first--;}else{auto nowNext = members.top();members.pop();result.push_back(nowNext.second);nowNext.first--;if(nowNext.first>0)members.push(nowNext);}if(now.first>0)members.push(now);// cout<<"resultSize:"<<result.size()<<endl;}return result;}
};

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

相关文章:

1054. 距离相等的条形码(leetcode,堆问题,priority_queue)-------------------c++实现

1054. 距离相等的条形码&#xff08;leetcode,堆问题&#xff0c;priority_queue&#xff09;-------------------c实现 题目表述 在一个仓库里&#xff0c;有一排条形码&#xff0c;其中第 i 个条形码为 barcodes[i]。 请你重新排列这些条形码&#xff0c;使其中任意两个相…...

QT开发实战-动态壁纸软件

动态壁纸软件开发 项目源代码在下面链接获取: ----------------------------- 开发者:CodeSharkSJ 希望此项目能加强你对Qt的应用 文章目录 项目图与开发环境核心技术原理自定义窗口程序UI布局背景绘制样式表基本实现QWebEngineQMedia使用系统托盘隐藏记忆功能应用程序打包 …...

Netty核心组件模块(一)

1.Bootstrap和ServerBootstrap 1>.Bootstrap意思是引导,一个Netty应用通常由一个Bootstrap开始,主要作用是配置整个Netty程序,串联各个组件,Netty中Bootstrap类是客户端程序的启动引导类,ServerBootstrap是服务端启动引导类; 2>.常见的方法有: ①.public ServerBootstr…...

Robot Framework+Jenkins持续集成UI自动化项目

使用Robot Framework框架可进行Web端和APP端的UI自动化测试&#xff0c;为方便定时执行&#xff0c;可将Robot Framework的自动化项目持续集成至Jenkins平台&#xff0c;具体的操作步骤如下&#xff1a; 安装Jenkins的步骤如下&#xff1a; 手把手教小白安装Jenkins_程序员馨馨…...

【ROS】ROS1编程速览

1、简述 很多项目已经转向ROS2&#xff0c;本人作为ROS小白从ROS1开始学起&#xff0c;但是不会深入学习ROS1&#xff0c;只一带而过。 下面只了解一些ROS1中的概念和基本编程接口。 ROS1中有两种通信模式&#xff1a;话题模式和服务模式&#xff0c;区别如下 2、话题模式 …...

探索智能化:TOOM解析未来稿件校验系统的技术进展与应用展望

在信息时代&#xff0c;随着大数据、人工智能和自然语言处理等技术的快速发展&#xff0c;稿件校验系统正朝着智能化的方向迈进。智能化的稿件校验系统能够更准确、高效地检测虚假信息、抄袭行为以及提升文章质量。本文将探讨智能化稿件校验系统的技术进展与应用展望&#xff0…...

Java程序员从青铜到王者,不同段位的薪资和技能变化

想要薪资高&#xff0c;段位就得跟上&#xff0c;对于Java程序员来说&#xff0c;从青铜到王者&#xff0c;需要经历多个阶段&#xff0c;每个阶段需要掌握的技能都不一样。 今天&#xff0c;我们一起来看看每个段位都有什么特点、需要具备哪些“大杀”技能&#xff0c;也看看…...

tinyWebServer 学习笔记——二、HTTP 连接处理

文章目录 一、基础知识1. epoll2. 再谈 I/O 复用3. 触发模式和 EPOLLONESHOT4. HTTP 报文5. HTTP 状态码6. 有限状态机7. 主从状态机8. HTTP_CODE9. HTTP 处理流程 二、代码解析1. HTTP 类2. 读取客户数据2. epoll 事件相关3. 接收 HTTP 请求4. HTTP 报文解析5. HTTP 请求响应 …...

深入浅析Linux Perf 性能分析工具及火焰图

Perf Event 子系统 Perf 是内置于 Linux 内核源码树中的性能剖析&#xff08;profiling&#xff09;工具。它基于事件采样的原理&#xff0c;以性能事件为基础&#xff0c;支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。可用于性能瓶颈的查找与热点代码的定位…...

java关键术语

java具有11个关键的术语,这些术语是从java的设计者所编写的白皮书中摘取,这些术语分别为:简单性、面向对象、分布式、健壮性、安全性、体系结构中立、可移植性、解释型、高性能、多线程、多态性。以下开始我们将逐一解说这些术语。 一、简单性 Java是C++语法的纯净版本,剔…...

1. 两数之和【简单】

题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺…...

《编码——隐匿在计算机软硬件背后的语言》精炼——第17章(自动操作)

夫道成于学而藏于书&#xff0c;学进于振而废于穷。 文章目录 完善加法器加入代码的加法器扩大加数范围自由调用地址的加法器合并代码RAM和数据RAMJump指令硬件实现条件Jump指令零转移的硬件实现条件Jump指令的例子 总结 完善加法器 我们在第14章介绍了一个可以进行连加的加法…...

用Colab免费部署AI绘画云平台Stable Diffusion webUI

Google Colab 版的 Stable Diffusion WebUI 1.4 webui github 地址&#xff1a;https://github.com/sd-webui/stable-diffusion-webui 平台搭建 今天就来交大家如果来搭建和使用这个云平台。 第一步: 打开链接 https://colab.research.google.com/github/altryne/sd-webu…...

R.I.P,又一位程序员巨佬——左耳朵耗子陨落

震惊&#xff01;谣言吧&#xff01;求辟谣&#xff01;默哀&#xff01; 左耳朵耗子&#xff0c;在程序员这个群体里应该属于 GOAT 的存在了&#xff0c;虽然每个人心目中都有自己的 GOAT&#xff0c;但耗子叔的影响力可以说是有目共睹。 我也是在技术群刷到这张图片的&#…...

捷威信keithley吉时利2410数字源表 销售回收KEITHLEY2470新款源表

吉时利Keithley 2410 /2470高压源表/数字源表 产品概览 Keithley 2410 高压源表专为需要紧密耦合源和测量的测试应用而设计。Keithly 2410 提供精密电压和电流源以及测量功能。它既是高度稳定的直流电源&#xff0c;又是真正的仪器级 5-1/2 数字万用表。电源特性包括低噪声、…...

第二十九回:如何给ListView添加分隔线

文章目录 概念介绍添加方法使用属性装饰器 示例代码经验总结&#xff1a; 我们在上一章回中介绍了多种创建ListView的方式,本章回中将介绍" 如何给ListView添加分隔线".闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在这里说的分隔线也叫Divider,…...

用友 LRP计划维护视图

select planlotnumber 计划单号, demandId 自动编号, PartId 物料Id , sotype 单据类型(1:销售/2:预测), sodid 销售订单明细Id , socode 销售订单单号 , soseq 销售订单行号, PlanCode 计划单号 , DueDate 完工日期 , StartDate 开工日期 , UnitCode 主计量单位, C…...

数组--part 5--螺旋矩阵(力扣59/54)(剑指offer 29)

文章目录 基本算法思想leetcode 59 螺旋矩阵 IIleetcode 54 螺旋矩阵剑指Offer 29 顺时针打印矩阵 基本算法思想 建议先去把题目看了&#xff0c;再来思考相关的代码。 错误的想法&#xff1a;实际上这种题型并不存在算法&#xff0c;只涉及到模拟&#xff0c;但是模拟难度并…...

加密解密软件VMProtect入门使用教程(九)许可制度之许可系统功能

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…...

MySQL基础-事务详解

本文主要介绍MySQL事务 文章目录 前言事务定义事务四大特性&#xff08;ACID&#xff09; 事务操作事务并发问题事务隔离级别 前言 参考链接&#xff1a; 链接1链接2 事务定义 事务是一组操作的集合&#xff0c;他是一个不可分割的工作单位&#xff0c;事务会把所有的操作作…...

TMSpeech:你的Windows本地实时语音转文字助手

TMSpeech&#xff1a;你的Windows本地实时语音转文字助手 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 在数字时代&#xff0c;会议、网课、视频通话已成为日常&#xff0c;但你是否曾因听不清、记不住而烦恼&…...

5分钟搞定OneNote到Markdown迁移:免费工具让你的笔记重获自由

5分钟搞定OneNote到Markdown迁移&#xff1a;免费工具让你的笔记重获自由 【免费下载链接】onenote-md-exporter ConsoleApp to export OneNote notebooks to Markdown formats 项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter 还在为OneNote笔记被锁…...

Android 离线TTS引擎集成实战:从选型到中文语音播报

1. 为什么需要离线TTS引擎&#xff1f; 在开发Android应用时&#xff0c;我们经常会遇到需要将文字转换为语音的场景。比如阅读类APP的听书功能、导航应用的语音播报、智能家居设备的语音反馈等。Android系统虽然自带了TTS&#xff08;Text To Speech&#xff09;功能&#xff…...

Zotero Citation插件完整指南:三步搞定Word文献引用自动化

Zotero Citation插件完整指南&#xff1a;三步搞定Word文献引用自动化 【免费下载链接】zotero-citation Make Zoteros citation in Word easier and clearer. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citation Zotero Citation插件是学术写作领域的革命性…...

软件测试全解析:方法、技能与实战案例,软件测试到底做什么?

软件测试是贯穿软件开发生命周期&#xff08;SDLC&#xff09;的系统性质量保障活动&#xff0c;其核心远非简单的“找Bug”。它要求从业者像“显微镜”般洞察细节&#xff0c;又需具备“架构师”的全局思维&#xff0c;通过一系列科学的方法、技术和流程&#xff0c;验证软件产…...

基于X11的机器人图形界面远程调试实战指南

1. 为什么需要X11远程调试机器人图形界面 做机器人开发的朋友们应该都遇到过这样的场景&#xff1a;你正坐在工位上调试代码&#xff0c;突然需要查看机器人上rviz的可视化效果。这时候常规操作是跑过去接显示器&#xff0c;或者用远程桌面连上去看。但前者太麻烦&#xff0c;后…...

AIVideo效果展示:多风格视频生成作品,实测惊艳

AIVideo效果展示&#xff1a;多风格视频生成作品&#xff0c;实测惊艳 1. 开篇&#xff1a;AI视频创作的新纪元 想象一下&#xff0c;你只需要输入一个简单的主题&#xff0c;就能在几分钟内获得一部包含专业分镜、精美画面、自然配音和精准字幕的完整视频。这不是科幻电影中…...

Flutter 三方库 get\_it + injectable 的鸿蒙化适配指南:实现优雅的依赖注入

Flutter 三方库 get_it injectable 的鸿蒙化适配指南&#xff1a;实现优雅的依赖注入 欢迎加入开源鸿蒙跨平台社区&#xff1a;https://openharmonycrossplatform.csdn.net 大家好呀&#xff01;&#x1f338; 今天要和大家分享一个超级实用的Flutter开发技巧——如何将 get_i…...

Blink-Diff:终极图像对比解决方案,让像素级差异无处遁形

Blink-Diff&#xff1a;终极图像对比解决方案&#xff0c;让像素级差异无处遁形 【免费下载链接】blink-diff A lightweight image comparison tool. 项目地址: https://gitcode.com/gh_mirrors/bl/blink-diff Blink-Diff 是一款轻量级图像对比工具&#xff0c;专为精准…...

手把手教你用PQTools V1.x.xx在线调Hi3516CV610的ISP,实时看Gamma/Demosaic效果

从零玩转Hi3516CV610 ISP调试&#xff1a;实时图像调参实战指南 刚拿到Hi3516CV610开发板的工程师们&#xff0c;是否对ISP&#xff08;Image Signal Processor&#xff09;调试感到既兴奋又困惑&#xff1f;兴奋的是可以亲手调整图像处理流程中的每个环节&#xff0c;困惑的是…...