Climbing the Leaderboard

  • + 0 comments

    Java Solution

        public static List<Integer> climbingLeaderboard(List<Integer> ranked, List<Integer> player) {
            List<Integer> rankList = ranked.stream().distinct().sorted().collect(Collectors.toList());
            List<Integer> results = new ArrayList<>();
            
            for (int playerScore : player) {
                int i = Collections.binarySearch(rankList, playerScore);
                if (i >= 0) results.add(rankList.size() - i);
                else results.add(rankList.size() + 1 - Math.abs(i + 1));
            }
            return results;
        }