Rank array
import java.util.*;
public class RankArray {
public static void main(String args[]) {
RankArray rankArray = new RankArray();
int[][] input = {
null,
{},
{2},
{1,-1},
{10,8,15,12,6,20,1},
{2,6,3,4,1,2,9,5,8},
{0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15}
};
for(int i=0; i< input.length; i++) {
System.out.println("Input: " + Arrays.toString(input[i]));
rankArray.transform(input[i]);
System.out.println("Result: " + Arrays.toString(input[i]));
}
}
private void transform(int[] input) {
if(input == null || input.length < 1) {
return;
}
Map<Integer,Integer> sorted = new TreeMap<>();
for(int i=0;i<input.length;i++){
sorted.put(input[i],i);
}
int rank = 1;
for(Map.Entry<Integer,Integer> entry:sorted.entrySet()){
input[entry.getValue()] = rank++;
}
}
}