每日一题——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
};

消耗时间和内存情况:

相关推荐
m沐沐3 小时前
【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
人工智能·pytorch·深度学习·算法·yolo·目标检测·transformer
不会就选b3 小时前
算法日常・每日刷题--<链表>3
数据结构·算法·链表
geovindu4 小时前
go: Iterative Algorithms
开发语言·后端·算法·golang·迭代算法
mayaairi5 小时前
JS循环语句深度解析:嵌套for、while与do...while
开发语言·前端·javascript
To_OC5 小时前
啃完流式输出:从一个卡顿的 LLM 接口开始,我搞懂了数据流到底怎么 “流”
前端·javascript·llm
Zachery Pole6 小时前
CCF-CSP备战NO.7【队列】
算法
闪电悠米6 小时前
力扣hot100-48.旋转图像-转置翻转详解
算法·leetcode·职场和发展
满天星83035776 小时前
【算法】最长递增子序列(三种解法)
算法
啦啦啦啦啦zzzz7 小时前
算法:贪心算法
c++·算法·leetcode·贪心算法
海上彼尚8 小时前
Nodejs也能写Agent - 22.LangGraph篇 - 上下文工程
前端·javascript·人工智能·langchain·node.js