Cで負の値を持つセットの2つのサブセット間の差を最大化する
入力 − arr [] ={-2、0、-3、8、10、12、-4}
出力 − 2つのサブセット間の最大差− 39
説明 −正の整数のサブセット{0、8、10、12}の合計は30です
最大差は30-(-9)=39
入力 − arr [] ={-5、-15、-3、-2、10、20、15}
出力 − 2つのサブセット間の最大差− 70
説明 −正の整数のサブセット{10、20、15}の合計は45
負の整数のサブセット{-5、-15、-3、-2}の合計は-25です
最大差は45-(-25)=70
以下のプログラムで使用されているアプローチは次のとおりです
-
正と負の整数を持つ整数配列をArr[]
とします。 -
関数subsetDifference(int arr []、int n)は、負の整数と正の整数の2つのサブセット間の最大化された差を見つけることです。 2つの引数を取ります。1つは配列自体で、もう1つはそのサイズnです。
-
変数sum=0を取り、配列のすべての要素の合計を格納します。
-
左から始めて、forループ(i =0; i
を使用して配列の各要素をトラバースします。 -
現在の要素が負(<0)の場合は、-1を掛けて正にします。(arr [i] =arr [i] *-1)
-
各要素を合計に追加します。
-
可能な最大サブセット差として合計を返します。
例
#include <stdio.h> int subsetDifference(int arr[], int n){ int sum = 0; for (int i = 0; i < n; i++){ if(arr[i]<0) arr[i]=arr[i]*-1; sum += arr[i]; } return sum; } // Driver Code int main(){ int arr[] = { -1, 3, 5, 17, -32, 12 }; int n = 6; printf("Maximized difference between subsets : %d", subsetDifference(arr, n)); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Maximized difference between two subsets: 70
-
Androidで2つの日付の違いを取得するにはどうすればよいですか?
この例は、Androidで2つの日付の違いを取得する方法を示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −次のコードをres / layout/activity_main.xmlに追加します。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://sche
-
2つのリストの違いをリストするC#プログラム
2つのリストの違いを取得するには、最初にC#で2つのリストを設定します- // first list List < string > list1 = new List < string > (); list1.Add("A"); list1.Add("B"); list1.Add("C"); list1.Add("D"); // second list List < string > list2 = new List < string > (); list2.Add