vamsu
7/31/2018 - 1:16 PM

Rank array

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++; 
        }
    }
    
}