配列内のK番目に大きい要素
このアルゴリズムは、一連のデータから、配列の最大の要素からk番目に大きい要素を見つけます。
この問題は、配列を並べ替えることで簡単に解決できます。昇順または降順で並べ替えることができます。降順で解くと、最初のk個の要素を取得して結果を見つけることができます。
入力と出力
Input:
The elements of an array: {1, 23, 12, 9, 30, 2, 50, 63, 87, 12, 45, 21}, K = 4
Output:
4 largest elements are 87 63 50 45 アルゴリズム
kthLargestElement(array, n, k)
入力: 配列、配列内の要素の数、kを配置します。
出力: 配列の最大要素からk番目に大きい要素を表示します。
Begin sort the array in descending order for i := 0 to k-1, do display array[i] done End
例
#include<iostream>
#include<algorithm>
using namespace std;
bool compare(int a, int b) {
return a>b;
}
void kthLargestElement(int array[], int n, int k) {
sort(array, array+n, compare);
for (int i = 0; i < k; i++) //largest to kth largest element
cout << array[i] << " ";
}
int main() {
int array[] = {1, 23, 12, 9, 30, 2, 50, 63, 87, 12, 45, 21};
int n = 12;
int k = 4;
kthLargestElement(array, n, k);
} 出力
87 63 50 45
-
PythonのストリームでK番目に大きい要素
ストリーム内でk番目に大きい要素を見つけるクラスを設計するとします。これは、ソートされた順序でk番目に大きい要素であり、k番目の個別の要素ではありません。 KthLargestクラスには、整数kと配列numsを受け入れるコンストラクターがあり、ストリームからの初期要素が含まれます。 KthLargest.addメソッドを呼び出すたびに、ストリーム内でk番目に大きい要素を表す要素が返されます。 したがって、入力がk =3、初期要素=[4,5,8,2]のような場合は、add(3)、add(5)、add(10)、add(9)、add(4)を呼び出します。 。の場合、出力はそれぞれ4、5、5、8、
-
Pythonの配列内のK番目に大きい要素
ソートされていない配列があるとすると、その配列からk番目に大きい要素を見つける必要があります。したがって、配列が[3,2,1,5,6,4]でk =2の場合、結果は5になります。 これを解決するには、次の手順に従います- 要素を並べ替えます kが1の場合は最後の要素を返し、そうでない場合はarray [n –k]を返します。nは配列のサイズです。 理解を深めるために、次の実装を見てみましょう- 例 class Solution(object): def findKthLargest(self, nums, k): nu