diff --git a/problems/1356.根据数字二进制下1的数目排序.md b/problems/1356.根据数字二进制下1的数目排序.md index 06c29500..c7e856d1 100644 --- a/problems/1356.根据数字二进制下1的数目排序.md +++ b/problems/1356.根据数字二进制下1的数目排序.md @@ -166,6 +166,18 @@ class Solution { ## JavaScript ```js +var sortByBits = function(arr) { + const bitCount = n =>{// 计算n的二进制中1的数量 + let count = 0; + while(n){ + n &= (n - 1);// 清除最低位的1 + count++; + } + return count; + } + // 如果有差,则按bits数排,如果无差,则按原值排 + return arr.sort((a,b) => bitCount(a) - bitCount(b) || a - b); +}; ``` -----------------------