@@ -54,13 +54,74 @@ Another possible subsequence is [4, 3].
54
54
### ** Python3**
55
55
56
56
``` python
57
-
57
+ class Solution :
58
+ def maxSubsequence (self , nums : List[int ], k : int ) -> List[int ]:
59
+ idx = list (range (len (nums)))
60
+ idx.sort(key = lambda i : nums[i])
61
+ return [nums[i] for i in sorted (idx[- k:])]
58
62
```
59
63
60
64
### ** Java**
61
65
62
66
``` java
67
+ class Solution {
68
+ public int [] maxSubsequence (int [] nums , int k ) {
69
+ int [] ans = new int [k];
70
+ List<Integer > idx = new ArrayList<> ();
71
+ int n = nums. length;
72
+ for (int i = 0 ; i < n; ++ i) {
73
+ idx. add(i);
74
+ }
75
+ idx. sort(Comparator . comparingInt(i - > - nums[i]));
76
+ int [] t = new int [k];
77
+ for (int i = 0 ; i < k; ++ i) {
78
+ t[i] = idx. get(i);
79
+ }
80
+ Arrays . sort(t);
81
+ for (int i = 0 ; i < k; ++ i) {
82
+ ans[i] = nums[t[i]];
83
+ }
84
+ return ans;
85
+ }
86
+ }
87
+ ```
88
+
89
+ ### ** C++**
90
+
91
+ ``` cpp
92
+ class Solution {
93
+ public:
94
+ vector<int > maxSubsequence(vector<int >& nums, int k) {
95
+ int n = nums.size();
96
+ vector<pair<int, int>> vals;
97
+ for (int i = 0; i < n; ++i) vals.push_back({i, nums[ i] });
98
+ sort(vals.begin(), vals.end(), [ &] (auto x1, auto x2) {
99
+ return x1.second > x2.second;
100
+ });
101
+ sort(vals.begin(), vals.begin() + k);
102
+ vector<int > ans;
103
+ for (int i = 0; i < k; ++i) ans.push_back(vals[ i] .second);
104
+ return ans;
105
+ }
106
+ };
107
+ ```
63
108
109
+ ### **Go**
110
+
111
+ ```go
112
+ func maxSubsequence(nums []int, k int) []int {
113
+ idx := make([]int, len(nums))
114
+ for i := range idx {
115
+ idx[i] = i
116
+ }
117
+ sort.Slice(idx, func(i, j int) bool { return nums[idx[i]] > nums[idx[j]] })
118
+ sort.Ints(idx[:k])
119
+ ans := make([]int, k)
120
+ for i, j := range idx[:k] {
121
+ ans[i] = nums[j]
122
+ }
123
+ return ans
124
+ }
64
125
```
65
126
66
127
### ** TypeScript**
0 commit comments