Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a6927a1

Browse files
Create relative_ranks.py
1 parent c2dddba commit a6927a1

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

‎day-27/relative_ranks.py‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Problem: Relative Ranks
2+
# Link: https://leetcode.com/problems/relative-ranks/description/
3+
# Tags: Array, Sorting, Hash Map
4+
# Approach: Pair each score with its original index, sort by score descending,
5+
# and assign "Gold/Silver/Bronze Medal" for top three; for the rest,
6+
# assign rank numbers as strings. Place results back using original indices.
7+
# Time Complexity: O(n log n) # sorting
8+
# Space Complexity: O(n) # result array + index pairs
9+
10+
11+
class Solution:
12+
def findRelativeRanks(self, score):
13+
n = len(score)
14+
res = [""] * n
15+
16+
# (score, index) pairs sorted by score descending
17+
order = sorted([(s, i) for i, s in enumerate(score)], reverse=True)
18+
19+
for rank, (_, idx) in enumerate(order, start=1):
20+
if rank == 1:
21+
res[idx] = "Gold Medal"
22+
elif rank == 2:
23+
res[idx] = "Silver Medal"
24+
elif rank == 3:
25+
res[idx] = "Bronze Medal"
26+
else:
27+
res[idx] = str(rank)
28+
29+
return res

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /