Skip to content

Commit a5c7fa2

Browse files
committed
feat: add solutions to lc problem: No.0506.Relative Ranks
1 parent b9593eb commit a5c7fa2

File tree

3 files changed

+94
-5
lines changed

3 files changed

+94
-5
lines changed

solution/0500-0599/0506.Relative Ranks/README.md

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
<li>所有运动员的成绩都不相同。</li>
2626
</ol>
2727

28-
2928
## 解法
3029

3130
<!-- 这里可写通用的实现逻辑 -->
@@ -37,15 +36,52 @@
3736
<!-- 这里可写当前语言的特殊实现逻辑 -->
3837

3938
```python
40-
39+
class Solution:
40+
def findRelativeRanks(self, score: List[int]) -> List[str]:
41+
n = len(score)
42+
idx = list(range(n))
43+
idx.sort(key=lambda x: -score[x])
44+
res = [None] * n
45+
for i in range(n):
46+
if i == 0:
47+
res[idx[i]] = 'Gold Medal'
48+
elif i == 1:
49+
res[idx[i]] = 'Silver Medal'
50+
elif i == 2:
51+
res[idx[i]] = 'Bronze Medal'
52+
else:
53+
res[idx[i]] = str(i + 1)
54+
return res
4155
```
4256

4357
### **Java**
4458

4559
<!-- 这里可写当前语言的特殊实现逻辑 -->
4660

4761
```java
48-
62+
class Solution {
63+
public String[] findRelativeRanks(int[] nums) {
64+
int n = nums.length;
65+
Integer[] index = new Integer[n];
66+
for (int i = 0; i < n; ++i) {
67+
index[i] = i;
68+
}
69+
Arrays.sort(index, (o1, o2) -> Integer.compare(nums[o2], nums[o1]));
70+
String[] res = new String[n];
71+
for (int i = 0; i < n; ++i) {
72+
if (i == 0) {
73+
res[index[i]] = "Gold Medal";
74+
} else if (i == 1) {
75+
res[index[i]] = "Silver Medal";
76+
} else if (i == 2) {
77+
res[index[i]] = "Bronze Medal";
78+
} else {
79+
res[index[i]] = String.valueOf(i + 1);
80+
}
81+
}
82+
return res;
83+
}
84+
}
4985
```
5086

5187
### **...**

solution/0500-0599/0506.Relative Ranks/README_EN.md

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,50 @@
5252
### **Python3**
5353

5454
```python
55-
55+
class Solution:
56+
def findRelativeRanks(self, score: List[int]) -> List[str]:
57+
n = len(score)
58+
idx = list(range(n))
59+
idx.sort(key=lambda x: -score[x])
60+
res = [None] * n
61+
for i in range(n):
62+
if i == 0:
63+
res[idx[i]] = 'Gold Medal'
64+
elif i == 1:
65+
res[idx[i]] = 'Silver Medal'
66+
elif i == 2:
67+
res[idx[i]] = 'Bronze Medal'
68+
else:
69+
res[idx[i]] = str(i + 1)
70+
return res
5671
```
5772

5873
### **Java**
5974

6075
```java
61-
76+
class Solution {
77+
public String[] findRelativeRanks(int[] nums) {
78+
int n = nums.length;
79+
Integer[] index = new Integer[n];
80+
for (int i = 0; i < n; ++i) {
81+
index[i] = i;
82+
}
83+
Arrays.sort(index, (o1, o2) -> Integer.compare(nums[o2], nums[o1]));
84+
String[] res = new String[n];
85+
for (int i = 0; i < n; ++i) {
86+
if (i == 0) {
87+
res[index[i]] = "Gold Medal";
88+
} else if (i == 1) {
89+
res[index[i]] = "Silver Medal";
90+
} else if (i == 2) {
91+
res[index[i]] = "Bronze Medal";
92+
} else {
93+
res[index[i]] = String.valueOf(i + 1);
94+
}
95+
}
96+
return res;
97+
}
98+
}
6299
```
63100

64101
### **...**
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution:
2+
def findRelativeRanks(self, score: List[int]) -> List[str]:
3+
n = len(score)
4+
idx = list(range(n))
5+
idx.sort(key=lambda x: -score[x])
6+
res = [None] * n
7+
for i in range(n):
8+
if i == 0:
9+
res[idx[i]] = 'Gold Medal'
10+
elif i == 1:
11+
res[idx[i]] = 'Silver Medal'
12+
elif i == 2:
13+
res[idx[i]] = 'Bronze Medal'
14+
else:
15+
res[idx[i]] = str(i + 1)
16+
return res

0 commit comments

Comments
 (0)