n 個の並べ替えられた整数値を含む配列「arr」があるとします。また、サイズ q の配列 "query" も与えられており、"query" の値が指定された配列 "arr" に存在するかどうかを確認する必要があります。クエリの値が arr に存在する場合は、「exists」と値の場所を出力します。それ以外の場合は、「存在しません」と出力され、クエリ内の値より大きい最小値が存在する arr 内の位置が出力されます。配列のインデックスは 1 であることを覚えておく必要があります。
入力が n = 8、arr = {1、2、3、4、7、9、12、15}、q = 3、query = {1、5、8} のような場合, 出力は
Present 1 Not present 5 Not present 6
です。クエリの最初の値は arr の位置 1 に表示されます。
クエリの 2 番目の値は arr に表示されます。クエリの値より大きい最小値の位置は 5 です。
同様に、arr にはクエリの 3 番目の値はありません。これより大きい値は arr の 6 番目の位置にあります。
この問題を解決するには、次の手順に従います。 -
#include <vector> #include <iostream> using namespace std; void solve(int n, int arr[], int q, int query[]) { vector<int> values; for(int i = 0; i < n; i++){ values.push_back(arr[i]); } for(int i = 0; i < q; i++) { int idx = lower_bound (values.begin(), values.end(), query[i]) - values.begin(); if (values[idx] == query[i]) cout << "Present "; else cout << "Not present "; cout << idx + 1 << endl; } } int main() { int input_arr[] = {1, 2, 3, 4, 7, 9, 12, 15}; int query_arr[] = {1, 5, 8}; solve(8, input_arr, 3, query_arr); return 0; }
int input_arr[] = {1, 2, 3, 4, 7, 9, 12, 15}; int query_arr[] = {1, 5, 8}; solve(8, input_arr, 3, query_arr);
Present 1 Not present 5 Not present 6
以上が配列内の特定の値を検索する C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。