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

LeetCode 1356.根据数字二进制下1的数目排序

题目

给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。

如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。

请你返回排序后的数组。

提示:

  • 1 <= arr.length <= 500
  • 0 <= arr[i] <= 10^4

思路:首先,根据 1的个数 和 当前数值,生成一个新的数字,来 存储 每一个数字 的 1的个数 和 本身的值。接下来,将 存储的数字,还原成最初始的数字,并根据 1的个数 和 当前数值 排序。

代码

class Solution {public int[] sortByBits(int[] arr) {int length = arr.length;for (int i = 0; i < length; i++) {// 因为arr[i]最大是10^4,还原时 arr[i]是余数// 因此 %= 10^5 放大也是放大10^5arr[i] = Integer.bitCount(arr[i]) * 100000 + arr[i];}Arrays.sort(arr);for (int i = 0; i < length; i++) {arr[i] %= 100000;}return arr;}
}

性能

时间复杂度o(nlogn)快排时间

空间复杂度o(logn)  快排递归调用栈

http://www.lqws.cn/news/147511.html

相关文章:

  • Linux(13)——Ext系列⽂件系统
  • 【缺陷】温度对半导体缺陷电荷态跃迁能级的影响
  • PostgreSQL 技术峰会,为您打造深度交流优质平台
  • [10-1]I2C通信协议 江协科技学习笔记(17个知识点)
  • MATLAB读取文件内容:Excel、CSV和TXT文件解析
  • 「深度拆解」Spring Boot如何用DeepSeek重构MCP通信层?从线程模型到分布式推理的架构进化
  • 基于LocalAI与cpolar技术协同的本地化AI模型部署与远程访问方案解析
  • 阿里云域名怎么绑定
  • EasyRTC音视频实时通话助力新一代WebP2P视频物联网应用解决方案
  • 智慧赋能:移动充电桩的能源供给革命与便捷服务升级
  • Postgresql字符串操作函数
  • Python Excel 文件处理:openpyxl 与 pandas 库完全指南
  • WebRTC中的几个Rtp*Sender
  • 阿里云事件总线 EventBridge 正式商业化,构建智能化时代的企业级云上事件枢纽
  • 基于RK3568的多网多串电力能源1U机箱解决方案,支持B码,4G等
  • 【计算机网络】NAT、代理服务器、内网穿透、内网打洞、局域网中交换机
  • 计算机网络领域所有CCF-A/B/C类期刊汇总!
  • 如何选择专业数据可视化开发工具?为您拆解捷码全功能和落地指南!
  • 企业管理中,商业智能BI主要做哪些事情?
  • 解决神经网络输出尺寸过小的实战方案
  • LLaMA.cpp 文本生成惩罚机制详解:从原理到实践的完整指南
  • LLaMA-Factory和python版本的兼容性问题解决
  • 任务调度器-关于中心化调度 vs 去中心化调度的核心区别
  • Authpf(OpenBSD)认证防火墙到ssh连接到SSH端口转发技术栈 与渗透网络安全的关联 (RED Team Technique )
  • Spring之事务管理方式
  • 网络安全全景解析
  • 【联网玩具】EN 18031欧盟网络安全认证
  • 解读《网络安全法》最新修订,把握网络安全新趋势
  • 【论文解读】MemGPT: 迈向为操作系统的LLM
  • 攻防世界-XCTF-Web安全最佳刷题路线