C++で配列内のパーティションポイントを検索します
このチュートリアルでは、パーティションポイントに残されたすべての要素が小さく、パーティションポイントに右にあるすべての要素が大きい配列内のパーティションポイントを見つけます。
問題を解決するための手順を見てみましょう。
-
アレイを初期化します。
-
アレイを繰り返し処理します。
-
0からIまで繰り返し、各値が現在の値よりも小さいかどうかを確認します。
-
Iからnまで繰り返し、各値が現在の値よりも大きいかどうかを確認します。
-
ボットが条件を満たした場合は、値を返します。
-
-
パーティションポイントを印刷します。
例
コードを見てみましょう。
#include <bits/stdc++.h> using namespace std; int findPartitionElement(int arr[], int n) { for (int i = 0; i < n; i++) { int is_found = true; for (int j = 0; j < i; j++) { if (arr[j] >= arr[i]) { is_found = false; break; } } for (int j = i + 1; j < n; j++) { if (arr[j] <= arr[i]) { is_found = false; break; } } if (is_found) { return arr[i]; } } return -1; } int main() { int arr[] = { 4, 3, 5, 6, 7 }; cout << findPartitionElement(arr, 5) << endl; return 0; }
出力
上記のコードを実行すると、次の結果が得られます。
5
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
C ++の特定の配列で固定小数点(インデックスに等しい値)を検索します
ここでは、特定の配列で固定小数点を見つける方法を説明します。配列では、値がそのインデックスと同じである場合、1つの要素は固定小数点として示されます。このプログラムは、存在する場合は値を返し、そうでない場合は-1を返します。配列は負の数も保持できます。そして、データ要素が並べ替えられます。 ここでは、二分探索アプローチを使用して、O(log n)時間でこの問題を解決します。最初に、中間要素が固定小数点であるかどうかを確認し、はいの場合はそれを返します。そうでない場合は、中間要素のインデックスがインデックスの値よりも大きい場合、インデックスが大きい場合の2つの状況があります。 、次に、右側で固定
-
ポイントがC++の円の内側にあるかどうかを確認します
1つの円(中心座標と半径)が指定され、別の点も指定されているとします。ポイントが円の内側にあるかどうかを確認する必要があります。それを解決するには、円の中心から与えられた点の距離を見つける必要があります。その距離が半径以下の場合、それは円の内側にあり、そうでない場合はそうではありません。 例 #include <iostream> #include <cmath> using namespace std; bool isInsideCircle(int cx, int cy, int r, int x, int y) { int dist =