C++ プログラム: 最大値を削除した後の配列の検索 最大値を削除した後に配列を検索する C++ プログラム

WBOY
リリース: 2023-09-04 20:01:02
転載
597 人が閲覧しました

C++程序:在删除最大值后找到数组

C++程序用于在删除最大值后找到数组

n 個の要素と別の値 k を含む配列 A があるとします。 k 個の操作を実行したいと考えています。演算の形式は次のとおりです。

  • d が配列の最大値であると仮定します。

  • 1 から n までの各インデックス i に対して、A を追加します。 [i] を d - A[i]

に置き換えます。最終シーケンスを見つける必要があります。

質問カテゴリ

データ構造内の配列は、特定の型の要素の有限のコレクションです。配列は次のように使用されます 同じタイプの要素を連続したメモリ位置に格納します。配列が割り当てられます 特定の名前と、さまざまなプログラミング言語でその名前によって参照される 配列の要素にアクセスするには、インデックスが必要です。 「name[i]」という用語を次のように使用します。 配列「name」内の位置「i」にある特定の要素にアクセスします。さまざまなデータ構造 たとえば、スタック、キュー、ヒープ、優先キューはすべて配列を使用して実装できます。で動作します 配列には、挿入、削除、更新、走査、検索、並べ替えの操作が含まれます。アクセス 以下のリンクは続きを読むためのものです。

https://www.tutorialspoint.com/data_ Structures_algorithms/array_data_structur.htm

つまり、問題への入力が A = [5, -1, 4, 2, 0] であるとします。 ; k = 19.の場合、d は 5 であるため、出力は [0, 6, 1, 3, 5] になります。

手順

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

n := size of A
m := -inf
t := -inf
for initialize i := 0, when i < n, update (increase i by 1), do:
   m := maximum of m and A[i]
for initialize i := 0, when i < n, update (increase i by 1), do:
   A[i] := m - A[i]
   t := maximum of t and A[i]
if k mod 2 is same as 1, then:
   for initialize i := 0, when i < n, update (increase i by 1), do:
      print A[i]
   Otherwise
      for initialize i := 0, when i < n, update (increase i by 1), do:
         A[i] := t - A[i]
         print A[i]
ログイン後にコピー

理解を深めるために、次の実装を見てみましょう。 −

#include <bits/stdc++.h>
using namespace std;
void solve(vector<int> A, int k){
   int n = A.size();
   int m = -999;
   int t = -999;
   for (int i = 0; i < n; i++)
      m = max(m, A[i]);
   for (int i = 0; i < n; i++)
      A[i] = m - A[i], t = max(t, A[i]);
   if (k % 2 == 1)
      for (int i = 0; i < n; i++)
         cout << A[i] << ", ";
   else
      for (int i = 0; i < n; i++)
         A[i] = t - A[i], cout << A[i] << ", ";
}
int main(){
   vector<int> A = { 5, -1, 4, 2, 0 };
   int k = 19;
   solve(A, k);
}
ログイン後にコピー

入力

{ 5, -1, 4, 2, 0 }, 19
ログイン後にコピー

出力

0, 6, 1, 3, 5,
ログイン後にコピー

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

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