C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

配列がC++で>=Kである少なくともK個の要素を持つような最大値K


この問題では、配列arrが与えられます。私たちのタスクは、配列がC++で>=Kである少なくともK個の要素を持つように最大値Kを見つけるプログラムを作成することです。

問題の説明

配列内にK以上の要素がK個以上あるという条件を満たす値Kを見つける必要があります。

問題を理解するために例を見てみましょう

入力 :arr [] ={3、5、1、7、6、6、4、8}

出力 :5

説明

5以上の配列内の要素:5、6、6、7、8。

ソリューションアプローチ

この問題の簡単で効果的な解決策は、配列を並べ替え、最後のインデックスから、要素の後の要素の数が要素自体よりも多いかどうかを確認することです。はいの場合、要素を返します。

#include <bits/stdc++.h>
using namespace std;
int CalcMaximumVal(int arr[], int N){
   sort(arr, arr + N);
   for(int i = (N - 1); i >= 0; i--){
      if(arr[i] <= (N - i) )
         return arr[i];
   }
}
int main(){
   int arr[] = {4,7,2,3,8};
   int N = sizeof(arr)/sizeof(arr[0]);
   cout<<"The maximum value K such that array has at-least K elements that are >= K is "<<CalcMaximumVal(arr, N);
   return 0;
}

出力

The maximum value K such that array has at-least K elements that are >= K
is 3

  1. C++で2つの要素が隣接しないような循環配列の最大合計

    この問題では、循環配列cirArr[]が与えられます。私たちのタスクは、C++で2つの要素が隣接しないように循環配列の最大合計を見つけるプログラムを作成することです。 問題の説明 循環配列の場合、隣接する要素を取得できないように、配列の要素の最大合計を見つける必要があります。つまり、代替要素を取得する必要があります。 循環アレイ は、配列の最後の要素が最初の要素に接続されている特殊なタイプの配列です。 問題を理解するために例を見てみましょう 入力 cirArr[] = {4, 1, 5, 3, 2} 出力 9 説明 最大合計循環サブシーケンスは[4、5、2]です。合計=9 ソリ

  2. C++を使用してすべての要素が割り切れるような配列要素を見つけます

    要素が少ない配列Aがあるとします。すべての要素をそれで分割できるように、Aから要素を見つける必要があります。 Aが[15、21、69、33、3、72、81]のようであるとすると、すべての数値は3で割り切れる可能性があるため、要素は3になります。 この問題を解決するために、Aの最小の数値を取得し、すべての数値を最小の数値で除算できるかどうかを確認します。はいの場合は数値を返し、そうでない場合はfalseを返します。 例 #include<iostream> #include<algorithm> using namespace std; int getNumber(in