Untitled
unknown
plain_text
a year ago
1.8 kB
16
Indexable
import java.util.*;
class Result {
public static List<Integer> sortBinaryNumbers(List<List<Integer>> bitArrays) {
// Store the decimal values and corresponding indices in an array of int[]
int n = bitArrays.size();
int[][] decimalWithIndex = new int[n][2]; // [decimal_value, original_index]
// Convert each list of bits to its decimal equivalent
for (int i = 0; i < n; i++) {
int decimalValue = 0;
for (int bit : bitArrays.get(i)) {
decimalValue |= (1 << bit); // Same as decimalValue += (1 << bit);
}
decimalWithIndex[i][0] = decimalValue;
decimalWithIndex[i][1] = i; // Store the original index
}
// Sort based on decimal values in descending order
Arrays.sort(decimalWithIndex, (a, b) -> Integer.compare(b[0], a[0]));
// Prepare the result list
List<Integer> result = new ArrayList<>();
for (int[] pair : decimalWithIndex) {
result.add(pair[1]); // Add the original index of sorted elements
}
return result;
}
}
public class Solution {
public static void main(String[] args) {
// Example input
List<List<Integer>> bitArrays = Arrays.asList(
Arrays.asList(0, 2), // Binary: 101 -> Decimal: 5
Arrays.asList(2, 3), // Binary: 1100 -> Decimal: 12
Arrays.asList(1, 2) // Binary: 110 -> Decimal: 6
);
// Get the sorted indices
List<Integer> sortedIndices = Result.sortBinaryNumbers(bitArrays);
// Output the sorted indices
System.out.println(sortedIndices); // Expected output: [1, 2, 0]
}
}
Editor is loading...
Leave a Comment