Sort by

recency

|

2394 Discussions

|

  • + 0 comments
    function climbingLeaderboard(ranked: number[], player: number[]): number[] {
      let uniqueRanks = Array.from(new Set(ranked));
    
      let pos = 0;
      let ans = new Array(player.length).fill(1);
    
      for (let i = uniqueRanks.length - 1; i >= 0; i--) {
        while (player[pos] < uniqueRanks[i] && pos < player.length) {
          ans[pos] = i + 2;
          pos++;
        }
      }
      return ans;
    }
    
  • + 0 comments

    ` def climbingLeaderboard(ranked, player): ranks = list(set(ranked)) ranks.sort(reverse=True)

    res = []
    for p in player:
        low, high = 0, len(ranks)
        while low < high:
            mid = (low + high) // 2
            if ranks[mid] > p:
                low = mid + 1
            else:
                high = mid
        res.append(low+1)
    return res
    
  • + 1 comment

    C# Solved

    https://red-horse.tistory.com/135

  • + 0 comments

    I guess in Java the ranked input is not always sorted correctly. Tried it multiple ways and always failed. As soon as I sorted "ranked" manually and didnt count on it to be sorted I passed.

  • + 0 comments

    TypeScript:

    function climbingLeaderboard(ranked: number[], player: number[]): number[] {
      const rankings: number[] = [];
      const distinct: number[] = Array.from(new Set(ranked));
    
      player.forEach((score) => {   
        if (score < distinct[distinct.length - 1]) {
          rankings.push(distinct.length + 1);
        } else {
          for (let i = 0; i < distinct.length; i++) {
            if (score >= distinct[i]) {
              rankings.push(i + 1);
    
              break;
            }
          };
        }
      });
    
      return rankings;
    }