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

LeetCode 1356.根据数字二进制下 1 的数目排序:自定义排序模拟

【LetMeFly】1356.根据数字二进制下 1 的数目排序:自定义排序模拟

力扣题目链接:https://leetcode.cn/problems/sort-integers-by-the-number-of-1-bits/

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

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

请你返回排序后的数组。

示例 1:

输入:arr = [0,1,2,3,4,5,6,7,8]输出:[0,1,2,4,8,3,5,6,7]解释:[0] 是唯一一个有 0 个 1 的数。 [1,2,4,8] 都有 1 个 1 。 [3,5,6] 有 2 个 1 。 [7] 有 3 个 1 。 按照 1 的个数排序得到的结果数组为 [0,1,2,4,8,3,5,6,7]

示例 2:

输入:arr = [1024,512,256,128,64,32,16,8,4,2,1]输出:[1,2,4,8,16,32,64,128,256,512,1024]解释:数组中所有整数二进制下都只有 1 个 1 ,所以你需要按照数值大小将它们排序。

示例 3:

输入:arr = [10000,10000]输出:[10000,10000]

示例 4:

输入:arr = [2,3,5,7,11,13,17,19]输出:[2,3,5,17,7,11,13,19]

示例 5:

输入:arr = [10,100,1000,10000]输出:[10,100,10000,1000]

提示:

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

解题方法:排序

按题意排序就好。

  • 时间复杂度O ( n log ⁡ n ) O(n\log n)O(nlogn),其中n = l e n ( a r r ) n=len(arr)n=len(arr),忽略内置函数计算整数二进制下所含1个数的时间复杂度
  • 空间复杂度O ( log ⁡ n ) O(\log n)O(logn)

AC代码

C++
/* * @LastEditTime: 2026-02-25 21:37:54 */classSolution{public:vector<int>sortByBits(vector<int>&arr){sort(arr.begin(),arr.end(),[](int&a,int&b){intca=__builtin_popcount(a);intcb=__builtin_popcount(b);returnca!=cb?ca<cb:a<b;});returnarr;}};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

http://www.jsqmd.com/news/412419/

相关文章:

  • django基于python文化旅游信息公开管理平台的设计与实现
  • 信用卡与贷款协商分期 委托律师处理的全流程实操指南,信用卡和贷款协商分期,到底该怎么委托律师处理? - 代码非世界
  • 最高补 1000 万!2026 福建省级 AI 项目申报全攻略,AI企业必看的申报要点与实操指南
  • 律师协助下信用卡与贷款分期协商全攻略,委托律师处理信用卡分期协商到底有多靠谱? - 代码非世界
  • AI原生应用:重塑视频生成格局
  • 信用卡逾期找律师协商分期还款靠谱吗?选择和律掌柜,选择专业、可靠、有效的债务解决方案 - 代码非世界
  • 网络安全】网络安全设备,你知道哪些呢?防火墙?IDS?
  • P6620 [省选联考 2020 A 卷] 组合数问题
  • 微分方程学习笔记
  • 入门SRC简单漏洞案例
  • 2024提示系统可视化开发工具排行榜:提示工程架构师选型权威参考
  • 考研数学资源合集
  • 述职报告资源合集
  • 集合幂级数与图的运算
  • 浅析什么是Subagent、Subagents 子代理核心要点、子代理如何运作、Skills vs Subagents 本质区别
  • 基于Matlab实现的指纹识别系统流程
  • PCB埋容埋阻顺序层压法 5个核心科普问答 吃透层压关键
  • 【渗透工具】——一款安全测试工具集,集合多种渗透测试常用的功能和工具
  • 【.net core】从ISugarQueryable<T>对象中获取泛型参数的类名称
  • 数学统计RMS与STD
  • AI Agent框架探秘:拆解 OpenHands(8)--- CodeActAgent
  • 国内首个AI编程Skill应用商店上线——陌讯Skills平台技术逻辑与价值
  • sql注入之报错盲注
  • 村里白事传统“忙kei”总结篇
  • 枝晶生长模拟:溶质、液相分数与Matlab源代码教程
  • 碰撞检测:射线法(Ray Casting)、分离轴定理(SAT)、向量法(Vector-Based Methods) 在多边形与多边形碰撞检测中的优劣势对比
  • 分享一份书单
  • AI 工程化实战:不学算法也能用好的 LLM 指南
  • 信用卡逾期后,找对机构申请分期正规可靠? - 代码非世界
  • 个性化分期委托机构怎么选才靠谱?信用卡逾期找哪个机构协商分期最可靠? - 代码非世界