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

C++の間隔で最も頻繁な数


各要素に[start、end]のような間隔がある整数間隔のリストのリストがあるとします。間隔内で最も頻繁に発生する数を見つける必要があります。同点の場合は、最小の数を返します。

したがって、入力が[[2、5]、[4、6]、[7、10]、[8、10]]の場合、出力は4

になります。

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

  • 1つのマップを定義するm

  • cnt:=0、val:=0

  • 値ごとにx−

    • (m [it [0]]を1増やします)

    • m [it [1]+1]を1減らします

  • 最後:=0

  • キーごとにm

    • 最後:=最後+その値

    • 最後の>cntの場合、次のようになります:

      • cnt:=最後

      • val:=it

  • 戻り値

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(vector<vector<int>>& x) {
      map <int, int> m;
      int cnt = 0;
      int val = 0;
      for(auto& it : x){
         m[it[0]]++;
         m[it[1] + 1]--;
      }
      int last = 0;
      for(auto& it : m){
         last += it.second;
         if(last > cnt){
            cnt = last;
            val = it.first;
         }
      }
      return val;
   }
};
main() {
   Solution ob;
   vector<vector<int>> v = {{2, 5},{4, 6},{7, 10},{8, 10}};
   cout << ob.solve(v);
}

入力-

{{2, 5},{4, 6},{7, 10},{8, 10}}

出力

4

  1. C++での可変数の引数

    場合によっては、事前定義された数のパラメーターの代わりに、可変数の引数、つまりパラメーターを受け取ることができる関数が必要な状況に遭遇することがあります。 C / C ++プログラミング言語はこの状況の解決策を提供し、要件に基づいて可変数のパラメーターを受け入れることができる関数を定義することができます。次の例は、そのような関数の定義を示しています。 int func(int, ... ) { . . . } int main() { func(1, 2, 3); func(1, 2, 3, 4); } 関数func()の最後の引数は楕円、つまり3つのドット(.

  2. C++のCHAR_BIT

    CHAR_BITは、charのビット数です。これは、C++言語の「limits.h」ヘッダーファイルで宣言されています。 1バイトあたり8ビットです。 これがC++言語のCHAR_BITの例です 例 #include <bits/stdc++.h> using namespace std; int main() {    int x = 28;    int a = CHAR_BIT*sizeof(x);    stack<bool> s;    cout << "T