⬆︎
×

[LC] 3309 Maximum Possible Number by Binary Concatenation

Java

import java.util.Arrays;

/**
 * <a href="https://leetcode.com/problems/maximum-possible-number-by-binary-concatenation/">Maximum Possible Number By Binary Concatenation</a>
 * 位运算;数组;枚举
 */
class Solution {
    /**
     * 非最优
     */
    public int maxGoodNumber(int[] nums) {
        String[] binary = new String[nums.length];
        for (int i = 0; i < nums.length; i++) {
            binary[i] = Integer.toBinaryString(nums[i]);
        }

        Arrays.sort(binary, (a, b) -> (b + a).compareTo(a + b));    // 按字典序降序排序

        StringBuilder sb = new StringBuilder();
        for (String s : binary) {
            sb.append(s);
        }
        return Integer.parseInt(sb.toString(), 2);
    }
}

发表评论