C++ では、配列のプレフィックスに -1 を乗算して配列の合計を最大化します。
整数の配列があり、タスクはまず配列のプレフィックスを取得し、次にそれに -1 を掛け、次に配列のプレフィックスの合計を計算することです。そして最後に、生成されたプレフィックス配列の最大値を見つけます。
プレフィックス配列は次のように生成されます。
プレフィックス配列の最初の要素 prefixArray[0] = 配列の最初の要素
プレフィックスの 2 番目の要素配列 prefixArray[1] = prefixArray[0] arr[1]
プレフィックス配列の 3 番目の要素 prefixArray[2] = prefixArray[1] arr[2]
プレフィックス配列の 4 番目の要素プレフィックス配列 prefixArray[3] = prefixArray[2] arr[3] ...など。
この問題のさまざまな入出力状況を見てみましょう -
For int arr[] = {2, 4, 1, 5, 2}
出力 プレフィックス配列は次のとおりです: -2 2 3 8 10 配列のプレフィックスに -1 を乗算して配列の合計を最大化します: 21
説明 - 整数の配列があります。まず、配列の接頭辞 (2) を取得し、それに -1 を掛けます。したがって、新しい配列は {-2, 4, 1, 5, 2} になります。ここで、プレフィックス配列の最大合計を形成します。
プレフィックス配列は {-2, 2, 3, 8, 10} です。最後のステップでは、合計を -2 2 3 8 `0 = 21 に最大化します。これが最終出力です。In- int arr[] = {-1, 4, 2, 1, -9, 6};
出力- プレフィックス配列は次のとおりです: 1 5 7 8 -1 5 配列のプレフィックスに -1 を乗算すると、最大化される配列の合計は次のようになります: 19
説明-整数の配列。まず、配列のプレフィックス -1 を取得し、それに -1 を掛けます。したがって、新しい配列は {1, 4, 2, 1, -9, 6} になります。今、私たちは形成します プレフィックス配列は {1, 5, 7, 8, -1, 5} です。最後のステップでは、合計を 1 5 8 5 = 19 に最大化し、これが最終出力になります。
次のプログラムで使用されるメソッドは次のとおりです。 -
整数配列と一時変数 x を -1 として宣言し、arr[0] を次のように設定します。 arr [0]*x。
配列のサイズを計算します。プレフィックス配列 prefix_array[size] を宣言します。関数 create_prefix_arr(arr, size, prefix_array) を呼び出して、指定された配列のプレフィックス配列を生成します。プレフィックス配列を出力します。
関数 Maximum_sum(prefix_array, size) を呼び出します。この関数は、配列の最大合計を保存します。
-
関数内 void create_prefix_arr(int arr[], int size, int prefix_array[])
prefix_array[0] を arr に設定します[0]。
i から 0 まで、配列のサイズになるまでループします。ループ内で、prefix_array[i] を prefix_array[i-1] arr[i] に設定します。
- #関数内で int Maximum_sum(int prefix_array[], int size)
- 一時変数 temp を宣言し、 -1 に設定します。
- i から 0 まで、配列のサイズになるまでループします。ループ内で、temp を max(temp, prefix_array[i]) に設定します。
- 配列 arr[temp 1] を宣言し、配列のすべての要素を 0 に初期化します。
- i から 0 まで、配列のサイズになるまでループします。ループ内で、arr[prefix_array[i]]
- は一時変数 max_sum を宣言し、0 に設定します。変数 i を temp
- として宣言し、i>0 のときにループを開始します。 arr[i] > 0 かどうかを確認し、max_sum を max_sum i に設定し、arr[i-1]-- と arr[i]-- を設定します。それ以外の場合は、i を 1 ずつ減らします。 #max_sum を返します。
例
#include <bits/stdc++.h> using namespace std; #define Max_size 5 //create the prefix array void create_prefix_arr(int arr[], int size, int prefix_array[]) { prefix_array[0] = arr[0]; for(int i=0; i<size; i++) { prefix_array[i] = prefix_array[i-1] + arr[i]; } } //find the maximum sum of prefix array int maximize_sum(int prefix_array[], int size) { int temp = -1; for(int i = 0; i < size; i++) { temp = max(temp, prefix_array[i]); } int arr[temp + 1]; memset(arr, 0, sizeof(arr)); for(int i = 0; i < size; i++) { arr[prefix_array[i]]++; } int max_sum = 0; int i = temp; while(i>0) { if(arr[i] > 0) { max_sum = max_sum + i; arr[i-1]--; arr[i]--; } else { i--; } } return max_sum; } int main() { int arr[] = {2, 4, 1, 5, 2}; int x = -1; arr[0] = arr[0] * x; int size = sizeof(arr) / sizeof(arr[0]); int prefix_array[size]; //call function to create a prefix array create_prefix_arr(arr, size, prefix_array); //print the prefix array cout<<"Prefix array is: "; for(int i = 0; i < size; i++) { cout << prefix_array[i] << " "; } //print the maximum sum of prefix array cout<<"\nMaximize the sum of array by multiplying prefix of array with -1 are:" <<maximize_sum(prefix_array, size); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます
Prefix array is: -2 2 3 8 10 Maximize the sum of array by multiplying prefix of array with -1 are: 21
以上がC++ では、配列のプレフィックスに -1 を乗算して配列の合計を最大化します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









私たちは皆、2、3、5、7、8 など、数の 2 乗ではない数字を知っています。非正方形の数は N 個あり、すべての数を知ることは不可能です。そこで、この記事では、平方なしまたは非平方数と、C++ で N 番目の非平方数を見つける方法についてすべて説明します。 N 番目の非平方数 数値が整数の 2 乗である場合、その数値は完全平方と呼ばれます。完全平方数の例としては、-1issquareof14issquareof29issquareof316issquareof425issquareof5 などがあります。数値がどの整数の平方でもない場合、その数値は非正方形と呼ばれます。たとえば、最初の 15 個の非平方数は -2、3、5、6 です。

円は閉じた図形です。円上のすべての点は、円内の点から等距離にあります。中心点を円の中心といいます。点から円の中心までの距離を半径といいます。面積は、閉じた図形の寸法の範囲を定量的に表現したものです。円の面積は、円の寸法内に囲まれた面積です。円の面積を計算する式、Area=π*r*r 面積を計算するには、円の半径を入力として与え、その式を使用して面積を計算します。アルゴリズム STEP1: stdinput を使用してユーザーからの入力として半径を取得します。STEP2 : area=( を使用して円の面積を計算します。

この記事では、指定された配列を k 要素分右に回転する逆転アルゴリズムについて学びます。たとえば、−Input:arr[]={4,6,2,6,43,7,3,7}、 k= 4出力:{43,7,3,7,4,6,2,6}説明:配列の各要素を 4 要素ずつ右に回転すると、{43,7,3,7,4,6,2,6} が得られます。入力:arr[]= {8 ,5,8,2,1,4,9,3},k=3出力:{4,9,3,8,5,8,2,1} 解決策を見つける

C++ の配列構文でいくつかの一意のペアを作成するには、適切な知識が必要です。一意のペアの数を見つけるときに、指定された配列内のすべての一意のペアを数えます。つまり、各ペアが一意である必要がある場所で、考えられるすべてのペアが形成される可能性があります。例: -Input:array[]={5,5,9}Output:4説明:すべての一意のペアの数は(5,5)、(5,9)、(9,5)、および(9,9)です。入力:array[] = {5,4,3,2,2}出力:解決策を見つける16の方法 この問題を解決するには2つの方法があります。

この記事では、C++ を使用して、最大値と最小値が同じ部分配列の数を求める問題を解決します。以下は問題の例です。 -入力:array={2,3,6,6,2,4,4,4}出力:12説明:{2},{3},{6},{6}, {2 }、{4}、{4}、{4}、{6,6}、{4,4}、{4,4}、および {4,4,4} は、同じ最大要素と最小要素で形成できるサブ配列です。入力: 配列 = {3, 3、1、5、

この記事では、セット上の再帰的関係を見つける方法を説明します。この問題では、数値 n と n 個の自然数のセットが与えられ、再帰関係の数を決定する必要があります。再帰的関係 - 集合 A 内のすべての 'a' について (a, a) が関係 R に属している場合、関係 R は集合 A 上の再帰的関係であると言われます。例: -Input:x=1Output:1説明:set={1},reflexiverelationsonA*A:{{1}}Input:x=2Output:4説明:set={1,2},reflexiverelationsonA*

この問題では、リンクされたリストの先頭へのポインタと整数 k が与えられます。サイズ k のグループでは、リンクされたリストを逆にする必要があります。たとえば、-Input:1<->2<->3<->4<->5(doublelinkedlist),k=3Output:3<->2<->1<->5<->4 解決策を探します方法 この問題では、この問題を解決するための再帰的アルゴリズムを定式化します。この方法では再帰を使用し、再帰を使用して問題を解決します。例#include<iostream&

この記事では、最初の 3 項に A.P. を使用し、最後の 3 項に G.P. を使用して、クォータニオンを見つけるすべての可能な方法について説明します。まずは等差数列(A.P.)と等比数列(G.P.)の基本的な定義について説明します。等差数列 (A.P.) - 公差 (d) が同じか一定である一連の数値であり、連続する 2 つの数値の差が一定であることを意味します。例: 1,3,5,7,9|d=2 幾何級数 (G.P.) - これは公比 (r) が同じ数列です。つまり、前の数値に固定の乗算ができることを意味します。番号。例: 3, 6, 12, 24, ....|r=2 この問題では、N 個の整数の配列 arr[] にいくつあるかを判断する必要があります。
