Climbing the Leaderboard

  • + 0 comments

    java

        public static List<Integer> climbingLeaderboard(List<Integer> ranked, List<Integer> player) {
            // Write your code here
            HashSet<Integer> set = new HashSet<>(ranked);
            ranked = new ArrayList<>(set); // only uniq value 
            Collections.sort(ranked , Collections.reverseOrder());
            ArrayList<Integer> result = new ArrayList<>();
            for(int p : player)
            {
                int index = Collections.binarySearch(ranked , p , Collections.reverseOrder());
                if(index < 0)
                {
                    index = Math.abs(index);
                    ranked.add(index -1 , p );
                    result.add(index);
                }else{
                    result.add(index + 1) ;
                }
                
            }
            return result ;   
        }