1356. Sort Integers by The Number of 1 Bits

package LeetCode_1356

import java.util.*

/**
 * 1356. Sort Integers by The Number of 1 Bits
 * https://leetcode.com/problems/sort-integers-by-the-number-of-1-bits/description/
 *
 * 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 4:

Input: arr = [2,3,5,7,11,13,17,19]
Output: [2,3,5,17,7,11,13,19]
 * */
class Solution {
    fun sortByBits(arr: IntArray): IntArray {
        val list = arr.sortedWith(Comparator<Int> { a, b ->
            val countOneA = countOneBit(a)
            val countOneB = countOneBit(b)
            if (countOneA - countOneB == 0) {
                //All integers have 1 bit in the binary representation,
                //you should just sort them in ascending order.
                a - b
            } else {
                countOneA - countOneB
            }
        })
        return list.toIntArray()
    }

    private fun countOneBit(n_: Int): Int {
        var n = n_
        var count = 0
        for (i in 0 until 32) {
            count += n and 1
            n = n shr 1
        }
        return count
    }
}

原文地址:https://www.cnblogs.com/johnnyzhao/p/12439978.html

时间: 2024-10-08 16:39:31

1356. Sort Integers by The Number of 1 Bits的相关文章

LeetCode | 1387. Sort Integers by The Power Value将整数按权重排序【Python】

LeetCode 1387. Sort Integers by The Power Value将整数按权重排序[Medium][Python][排序] Problem LeetCode The power of an integer x is defined as the number of steps needed to transform x into 1 using the following steps: if x is even then x = x / 2 if x is odd t

leetCode191/201/202/136 -Number of 1 Bits/Bitwise AND of Numbers Range/Happy Number/Single Number

一:Number of 1 Bits 题目: Write a function that takes an unsigned integer and returns the number of '1' bits it has (also known as the Hamming weight). For example, the 32-bit integer '11' has binary representation 00000000000000000000000000001011, so t

[LeetCode] Prime Number of Set Bits in Binary Representation

Given two integers L and R, find the count of numbers in the range [L, R] (inclusive) having a prime number of set bits in their binary representation. (Recall that the number of set bits an integer has is the number of 1s present when written in bin

762. Prime Number of Set Bits in Binary Representation 二进制表示形式中的素数位数

Given two integers L and R, find the count of numbers in the range [L, R] (inclusive) having a prime number of set bits in their binary representation. (Recall that the number of set bits an integer has is the number of 1s present when written in bin

[Swift]LeetCode191. 位1的个数 | Number of 1 Bits

Write a function that takes an unsigned integer and return the number of '1' bits it has (also known as the Hamming weight). Example 1: Input: 00000000000000000000000000001011 Output: 3 Explanation: The input binary string 000000000000000000000000000

191. 求1的位数 Number of 1 Bits

Write a function that takes an unsigned integer and returns the number of '1' bits it has (also known as the Hamming weight). For example, the 32-bit integer '11' has binary representation 00000000000000000000000000001011, so the function should retu

LeetCode OJ:Number of 1 Bits(比特1的位数)

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight). For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should retu

[LeetCode]Number of 1 Bits

Number of 1 Bits Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight). For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the fun

Number of 1 Bits

Description: Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight). For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the functio