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

消耗时间和内存情况:

相关推荐
螺丝钉tina9 分钟前
[Playwright ][16]Playwright + TypeScript API 自动化测试实战:API测试
前端·javascript·typescript
AiNightVision2 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
Highcharts.js2 小时前
React 中原生支持使用 JSX 组件配置自定义表格 Highcharts Grid
前端·javascript·react.js·前端框架·jsx·highcharts·自定义表格
Java后端的Ai之路3 小时前
【AIAgent开发】-Agent工具封装成CLI(纯干货!!!)
java·javascript·人工智能·agent·cli
薛定谔的猫-菜鸟程序员3 小时前
Electron开发超详细教程(从入门到放弃)
前端·javascript·electron
牧羊人.3333 小时前
卷积神经网络之VGG
人工智能·深度学习·神经网络·算法·cnn
小郎君6584 小时前
Vue 多标签页的加载态设计:为什么我没有用 Suspense 实现 PageLoading
vue.js·算法
htzyl2064 小时前
前端阶梯——第四十三章、实战二:待办清单To-Do
前端·javascript·html
程序员大阳4 小时前
HTML+CSS+JS对话式实战(1)-开篇:认识我们要做的社团活动发布平台
javascript·css·html·实战·系统·平台·社团活动发布