Skip to content

Commit 1446b7e

Browse files
committed
feat: add solutions to lc problem: No.1985
No.1985.Find the Kth Largest Integer in the Array
1 parent 5f28212 commit 1446b7e

File tree

6 files changed

+119
-2
lines changed

6 files changed

+119
-2
lines changed

solution/1900-1999/1985.Find the Kth Largest Integer in the Array/README.md

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,22 +59,65 @@ nums 中的数字按非递减顺序排列为 ["0","0"]
5959

6060
<!-- 这里可写通用的实现逻辑 -->
6161

62+
**方法一:自定义排序**
63+
6264
<!-- tabs:start -->
6365

6466
### **Python3**
6567

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

6870
```python
69-
71+
class Solution:
72+
def kthLargestNumber(self, nums: List[str], k: int) -> str:
73+
def cmp(a, b):
74+
if len(a) != len(b):
75+
return len(b) - len(a)
76+
return 1 if b > a else -1
77+
78+
nums.sort(key=cmp_to_key(cmp))
79+
return nums[k - 1]
7080
```
7181

7282
### **Java**
7383

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

7686
```java
87+
class Solution {
88+
public String kthLargestNumber(String[] nums, int k) {
89+
Arrays.sort(nums, (a, b) -> a.length() == b.length() ? b.compareTo(a) : b.length() - a.length());
90+
return nums[k - 1];
91+
}
92+
}
93+
```
94+
95+
### **C++**
96+
97+
```cpp
98+
class Solution {
99+
public:
100+
string kthLargestNumber(vector<string>& nums, int k) {
101+
auto cmp = [](const string& a, const string& b) { return a.size() == b.size() ? a > b : a.size() > b.size(); };
102+
sort(nums.begin(), nums.end(), cmp);
103+
return nums[k - 1];
104+
}
105+
};
106+
```
77107
108+
### **Go**
109+
110+
```go
111+
func kthLargestNumber(nums []string, k int) string {
112+
sort.Slice(nums, func(i, j int) bool {
113+
a, b := nums[i], nums[j]
114+
if len(a) == len(b) {
115+
return a > b
116+
}
117+
return len(a) > len(b)
118+
})
119+
return nums[k-1]
120+
}
78121
```
79122

80123
### **...**

solution/1900-1999/1985.Find the Kth Largest Integer in the Array/README_EN.md

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,54 @@ The 2<sup>nd</sup> largest integer in nums is &quot;0&quot;.
5858
### **Python3**
5959

6060
```python
61-
61+
class Solution:
62+
def kthLargestNumber(self, nums: List[str], k: int) -> str:
63+
def cmp(a, b):
64+
if len(a) != len(b):
65+
return len(b) - len(a)
66+
return 1 if b > a else -1
67+
68+
nums.sort(key=cmp_to_key(cmp))
69+
return nums[k - 1]
6270
```
6371

6472
### **Java**
6573

6674
```java
75+
class Solution {
76+
public String kthLargestNumber(String[] nums, int k) {
77+
Arrays.sort(nums, (a, b) -> a.length() == b.length() ? b.compareTo(a) : b.length() - a.length());
78+
return nums[k - 1];
79+
}
80+
}
81+
```
82+
83+
### **C++**
84+
85+
```cpp
86+
class Solution {
87+
public:
88+
string kthLargestNumber(vector<string>& nums, int k) {
89+
auto cmp = [](const string& a, const string& b) { return a.size() == b.size() ? a > b : a.size() > b.size(); };
90+
sort(nums.begin(), nums.end(), cmp);
91+
return nums[k - 1];
92+
}
93+
};
94+
```
6795
96+
### **Go**
97+
98+
```go
99+
func kthLargestNumber(nums []string, k int) string {
100+
sort.Slice(nums, func(i, j int) bool {
101+
a, b := nums[i], nums[j]
102+
if len(a) == len(b) {
103+
return a > b
104+
}
105+
return len(a) > len(b)
106+
})
107+
return nums[k-1]
108+
}
68109
```
69110

70111
### **...**
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Solution {
2+
public:
3+
string kthLargestNumber(vector<string>& nums, int k) {
4+
auto cmp = [](const string& a, const string& b) { return a.size() == b.size() ? a > b : a.size() > b.size(); };
5+
sort(nums.begin(), nums.end(), cmp);
6+
return nums[k - 1];
7+
}
8+
};
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
func kthLargestNumber(nums []string, k int) string {
2+
sort.Slice(nums, func(i, j int) bool {
3+
a, b := nums[i], nums[j]
4+
if len(a) == len(b) {
5+
return a > b
6+
}
7+
return len(a) > len(b)
8+
})
9+
return nums[k-1]
10+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Solution {
2+
public String kthLargestNumber(String[] nums, int k) {
3+
Arrays.sort(nums, (a, b) -> a.length() == b.length() ? b.compareTo(a) : b.length() - a.length());
4+
return nums[k - 1];
5+
}
6+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def kthLargestNumber(self, nums: List[str], k: int) -> str:
3+
def cmp(a, b):
4+
if len(a) != len(b):
5+
return len(b) - len(a)
6+
return 1 if b > a else -1
7+
8+
nums.sort(key=cmp_to_key(cmp))
9+
return nums[k - 1]

0 commit comments

Comments
 (0)