Skip to content

Commit d897395

Browse files
authored
Update the-k-strongest-values-in-an-array.cpp
1 parent cdd4bc6 commit d897395

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

C++/the-k-strongest-values-in-an-array.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,26 @@ class Solution {
1717
// Time: O(nlogn)
1818
// Space: O(1)
1919
class Solution2 {
20+
public:
21+
vector<int> getStrongest(vector<int>& arr, int k) {
22+
sort(begin(arr), end(arr));
23+
const auto m = arr[(arr.size() -1) / 2];
24+
int left = 0, right = arr.size() - 1;
25+
vector<int> result;
26+
while (result.size() < k) {
27+
if (m - arr[left] > arr[right] - m) {
28+
result.push_back(arr[left++]);
29+
} else {
30+
result.push_back(arr[right--]);
31+
}
32+
}
33+
return result;
34+
}
35+
};
36+
37+
// Time: O(nlogn)
38+
// Space: O(1)
39+
class Solution3 {
2040
public:
2141
vector<int> getStrongest(vector<int>& arr, int k) {
2242
sort(begin(arr), end(arr));

0 commit comments

Comments
 (0)