import java.util.Arrays; public class Main { public static void main(String[] args) { // 当a和b最高位1的位置不同时有 // a^b > a&b int[] item = new int[]{4, 3, 5, 2}; int[] flag = new int[item.length]; for (int i = 0; i < item.length; i++) { flag[i] = 32 - Integer.numberOfLeadingZeros(item[i]); } Arrays.sort(flag); int[] dp = new int[item.length]; for (int i = flag.length - 2; i >= 0; i--) { if (flag[i] == flag[i + 1]) { dp[i] = dp[i + 1]; } else { dp[i] = flag.length - i - 1; } } System.out.println(Arrays.stream(dp).sum()); } } 给你提供一份参考代码,不知道能不能过
点赞 评论

相关推荐

牛客网
牛客企业服务