Skip to content

Commit

Permalink
Sorts by the count of binary 1's
Browse files Browse the repository at this point in the history
38th exercise - leetcode.com/problems/sort-integers-by-the-number-of-1-bits/
  • Loading branch information
CharlesCreativeContent authored Jun 29, 2020
1 parent 41e3351 commit 2285d85
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions sortBinary1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
Given an integer array arr. You have to sort the integers in the array in ascending order by the number of 1's in their binary representation and in case of two or more integers have the same number of 1's you have to sort them in ascending order.
Return the sorted array.
Example 1:
Input: arr = [0,1,2,3,4,5,6,7,8]
Output: [0,1,2,4,8,3,5,6,7]
Explantion: [0] is the only integer with 0 bits.
[1,2,4,8] all have 1 bit.
[3,5,6] have 2 bits.
[7] has 3 bits.
The sorted array by bits is [0,1,2,4,8,3,5,6,7]
Example 2:
Input: arr = [1024,512,256,128,64,32,16,8,4,2,1]
Output: [1,2,4,8,16,32,64,128,256,512,1024]
Explantion: All integers have 1 bit in the binary representation, you should just sort them in ascending order.
Example 3:
Input: arr = [10000,10000]
Output: [10000,10000]
Example 4:
Input: arr = [2,3,5,7,11,13,17,19]
Output: [2,3,5,17,7,11,13,19]
Example 5:
Input: arr = [10,100,1000,10000]
Output: [10,100,10000,1000]
*/

//Answer//

/**
* @param {number[]} arr
* @return {number[]}
*/
var sortByBits = function(arr) {
return arr.sort((a,b)=>a.toString(2).split('').filter(x=>x==='1').length-b.toString(2).split('').filter(x=>x==='1').length||a-b)
};

0 comments on commit 2285d85

Please sign in to comment.