配列内の特定の値を検索する C++ プログラム

WBOY
リリース: 2023-08-30 19:21:06
転載
930 人が閲覧しました

配列内の特定の値を検索する C++ プログラム

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 番目の位置にあります。

この問題を解決するには、次の手順に従います。 -

  • 配列値を定義します。
  • 初期化の場合、i := 0、i < n の場合、更新します。 (i を 1 ずつ増やす)、-< n 时,更新(将 i 增加 1),执行 -
    • 値の末尾に arr[i] を挿入します。
  • i := 0 を初期化します。i < q の場合、更新します。 ( i を 1 増やします)、-< q 时,更新(将 i 增加 1),执行 -
    • idx: = (query[i] 以上の値の最初の要素の位置) -値の最初の要素の位置## を実行します。
    • #values[idx] が query[i] と同じ場合、 -
      • print("Exists")
    • それ以外の場合、
      • print("存在しません ")
    • print(idx 1)
Example

Letより深く理解するには、次の実装を参照してください -

#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;
}
ログイン後にコピー

Input (標準入力)

int input_arr[] = {1, 2, 3, 4, 7, 9, 12, 15};
int query_arr[] = {1, 5, 8};
solve(8, input_arr, 3, query_arr);
ログイン後にコピー

Output

Present 1
Not present 5
Not present 6
ログイン後にコピー
ログイン後にコピー

以上が配列内の特定の値を検索する C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート