每日一题——LeetCode1356.根据数字二进制下1的数目排序

方法一 重写sort排序

按照二进制中1的数量排序,那么就要把每个数字的二进制形式中1的数目统计出来,

sort排序中两个参数a、b,return a-b就是按照数值大小排序,return countOnes(a)-countOnes(b)

就是按照二进制中1的数量来排序。

javascript 复制代码
var sortByBits = function(arr) {
    function countOnes(num) {
        let count = 0; // 初始化为0
        while (num !== 0) {
            if ((num & 1) === 1) { // 判断最低位是否为1
                count++; // 如果是则计数加1
            }
            num >>= 1; // 右移一位,相当于除2操作
    }
        return count;
    }

    arr.sort((a,b)=>{
        let res=countOnes(a)-countOnes(b)
        return  res===0?a-b:res
    })
    return arr
};

消耗时间和内存情况:

相关推荐
艾莉丝努力练剑4 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
辰风沐阳32 分钟前
JavaScript 的宏任务和微任务
javascript
偷吃的耗子35 分钟前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
冰暮流星1 小时前
javascript之二重循环练习
开发语言·javascript·数据库
dazzle1 小时前
机器学习算法原理与实践-入门(三):使用数学方法实现KNN
人工智能·算法·机器学习
那个村的李富贵1 小时前
智能炼金术:CANN加速的新材料AI设计系统
人工智能·算法·aigc·cann
Mr Xu_2 小时前
Vue 3 中 watch 的使用详解:监听响应式数据变化的利器
前端·javascript·vue.js
张张努力变强2 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
万岳科技系统开发2 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
张登杰踩2 小时前
MCR ALS 多元曲线分辨算法详解
算法