-
C++でxとのXORがxより大きい小さい値をカウントします
整数が与えられます。たとえば、xとタスクは、xよりも小さい数値をカウントすることです。xとのXORは、XOR値よりも大きい値になります。 XOR演算の真理値表を以下に示します A B A XOR B 0 0 0 1 0 1 0 1 1 1 1 0 入力 − int x =11 出力 − xとのXORがxより大きい小さい値の数は− 4 説明 − xは11として与えられます。これは、x未満の数のxのXORを見つける必要があることを意味します。したがって、数値は1 XOR 11 <11(FALS
-
C++での最大循環サブ配列の合計
配列が与えられ、タスクは、サブ配列の合計が循環的に最大値になるようにサブ配列を形成することです。 入力 − int arr [] ={1、2、8、4、3、0、7} 出力 −最大循環サブアレイの合計は− 22 説明 − {1、2、8、4、3、0、7}を含む配列が与えられ、そのサブ配列の合計は7 + 1 + 2+ 8+4は22になります。 入力 − int arr [] ={2、5、-1、6、9、4、-5} 出力 −最大循環サブアレイの合計は− 25 説明 − {2、5、-1、6、9、4、-5}を含む配列が与えられ、合計が最大のそのサブ配列は4 + 2 + 5 --1 + 6+
-
合計がC++の対角合計に等しい行/列をカウントします
行と列を持つ2次元配列である行列が与えられます。タスクは、すべての行と列の合計の数を計算して、主行列または二次行列の合計。 入力 − int arr[row][col] = { { 4, 1, 7 }, { 10, 3, 5 }, { 2, 2, 11} } 出力 −合計が対角合計に等しい行/列の数は&mins;です。 2 説明 − 主対角線の合計は4+3 + 11 =18であり、二次対角線の合計は7 + 3 + 2=12です。行の合計は4+1 + 7 =12(TRUE)、10 + 3 + 5=18です
-
C ++でソートされた配列の出現回数(または頻度)をカウントします
整数型要素の並べ替えられた配列が与えられ、その数、たとえばnumが与えられます。タスクは、与えられた要素numが配列に出現する回数のカウントを計算することです。 。 入力 − int arr [] ={1、1、1,2、3、4}、num =1 出力 −ソートされた配列の出現回数(または頻度)の数は− 3 入力 − int arr [] ={2、3、4、5、5、6、-7}、num =5 出力 −ソートされた配列の出現回数(または頻度)の数は− 2 入力-intarr[] ={-1、0、1、2、3}、num =7 出力 −ソートされた配列の出現回数(または頻度)の数は− 0
-
C++でGCD1を使用したサブシーケンスの数をカウントします
整数要素の配列が与えられ、タスクは、GCDが1である与えられた配列からサブシーケンスを見つけることです。GCDは2つ以上の最大公約数です。与えられた数を完全に、そしてすべての中で最大に分割する整数。 入力 − int arr [] ={3、4、8、16} 出力 − GCD 1のサブシーケンスの数は− 7 説明 − GCDを1として指定されたアレイから形成できるサブシーケンスは、(3、4)、(3、8)、(3、16)、(4、3)、(8、3)、(16、 3)、(3、4、8) 入力 − int arr [] ={5、7、10} 出力 − GCD 1のサブシーケンスの数は− 3
-
C++で1つの数値を含む最長の間隔
numsと呼ばれる個別の整数のリストがあるとします。最大間隔(両端を含む)[開始、終了]のサイズを見つけて、最大でnum個の数値が含まれるようにする必要があります。 したがって、入力がnums =[10、6、20]の場合、最大間隔は[11、100000]であり、これには20のみが含まれるため、出力は99990になります。 これを解決するには、次の手順に従います- ret:=-inf 終了:=100000 前:=1 配列番号を並べ替える n:=numsのサイズ 初期化i:=0の場合、i
-
C++でリスト値を等しくする
numsという整数のリストがあるとします。ここで、リスト内の整数のサブセットを選択し、それらすべてを1つインクリメントする操作を想定します。リスト内のすべての値を互いに等しくするために必要な操作の最小数を見つける必要があります。 したがって、入力が[1,3,5]の場合、出力は4になります。 これを解決するには、次の手順に従います- numsのサイズが1と同じ場合、- 0を返す ret:=0 maxVal:=-inf minVal:=inf 初期化i:=0の場合、i
-
C++で含まれる間隔
各間隔に2つの値[開始、終了]がある間隔の2次元リストがあるとします。別の間隔を含む間隔があるかどうかを確認する必要があります。 したがって、入力が[[2,4]、[5,11]、[5,9]、[10,10]]の場合、[5,11]には[5、 9]。 これを解決するには、次の手順に従います- 配列を並べ替えるv 1つの2D配列retを定義する 間隔ごとにv− retが空の場合、- retの最後に挿入します =it [0]の場合、- trueを返す それ以外の場合 retの最後に挿入します falseを返す 理解を深
-
C++での分割リスト
numsという整数のリストがあるとすると、左側のすべての数値が厳密に少なくなるように、リストを2つのサブリスト(空ではない)に分割できるかどうかを確認する必要があります。右側のすべての数字よりも。 したがって、入力が[6,4,3,8,10]の場合、left=[6,4,3]およびright=[8,10] のように、出力はtrueになります。 これを解決するには、次の手順に従います- n:=numsのサイズ サイズnの配列の権利を定義する サイズnの左側の配列を定義します left [0]:=nums [0] 右の最後の要素:=numsの最後の要素 初期化
-
C++でゼロに反転
numsという整数配列が1つあり、これに0と1が含まれているとします。数値でインデックスiを選択し、インデックスiで要素を反転し、iの右側にあるすべての数値を反転する操作があるとします。 numにすべて0を含めるために必要な操作の最小数を見つける必要があります。 したがって、入力が[1,0,1]の場合、出力は3になり、インデックス0で操作され、[0,1,0]に変換され、次にインデックス1で[ 0,0,1]、次にインデックス2、[0,0,0]。 これを解決するには、次の手順に従います- n:=numsのサイズ サイズnの配列opを定義します ret:=0 初期化i:=
-
C++の起源から最も遠い
各文字が「L」、「R」、または「?」のいずれかである文字列sがあるとします。 「L」は1ユニット左に移動したことを意味し、「R」は1ユニット右に移動したことを意味し、「?」 「L」または「R」のいずれかを意味します。位置0にいる場合は、「?」を置き換えて、0から可能な最大距離を見つける必要があります。 「L」または「R」で。 したがって、入力が「LLRRL ??」の場合、出力は3になり、?を置き換えます。 Lを使用して左に5ユニット、右に2ユニット移動するため、最大変位は3です。 これを解決するには、次の手順に従います- op:=0、l:=0、r:=0 sでそれごとに-
-
C++での反転マトリックスの前日
バイナリ行列が1つあるとします。行を反転してから列を反転した場合に取得できる1の最大数を見つける必要があります。 つまり、入力が次のような場合 1 0 1 0 1 0 1 0 0 その場合、出力は8になります これを解決するには、次の手順に従います- n:=行列の行のサイズ m:=行列の列のサイズ ret:=0 サイズnの配列行を定義します サイズnの配列列を定義します 合計:=0 初期化i:=0の場合、i
-
C++での回文整数
numという非負の整数があるとすると、それが回文であるかどうかを確認する必要がありますが、文字列は使用しません。 したがって、入力が1331のような場合、出力はtrueになります。 これを解決するには、次の手順に従います- ret:=0 x:=num 0の場合、実行- d:=num mod 10 ret:=ret * 10 ret:=ret + d num:=num / 10 xがretと同じ場合はtrueを返します 理解を深めるために、次の実装を見てみましょう- 例 #include <bits/stdc++.h
-
C++での一致検索
numsと呼ばれる一意の整数のリストがあるとします。標準の二分探索を使用して、まだ正常に検出できる整数の数を検出する必要があります。 したがって、入力が[2,6,4,3,10]の場合、出力は3になります。これは、バイナリ検索を使用して4を検索する場合と同様に、最初に見つけることができます。反復。また、2回の反復後に2と10を見つけることができます。 これを解決するには、次の手順に従います- 関数help()を定義します。これは、ターゲット、配列、および数値を取ります。 低:=0 high:=numsのサイズ-1 低い<=高い間、実行- 中:=低+(高-低)/
-
C++での大から小へのソート
整数numのリストがあるとすると、この方法でリストをソートする必要があります- 最初の要素は最大です 2番目の要素は最小です 3番目の要素は2番目の最大値です 4番目の要素は2番目の最小値です など。 したがって、入力が[6,3,10,4]の場合、出力は[10、3、6、4]になります。 これを解決するには、次の手順に従います- 配列retを定義する 配列番号を並べ替える j:=numsのサイズ-1 i:=0 i <=jの場合、- retの最後にnums[j]を挿入します (jを1つ減らします) i <=jの場合
-
C++のビール瓶
番号nが1つあるとします。ここで、nはn本のフルビール瓶を示します。空のビール瓶3本をフルビール瓶1本に交換できる場合は、飲むことができるビール瓶の数を見つける必要があります。 したがって、入力が10のような場合、出力は14になります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これにはnが必要です。 ret:=0 =3の場合、- q:=n / 3 ret:=ret + q * 3 n:=n-q * 3 n:=n + q ret:=ret + n retを返す 理解を深めるために、次の
-
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の場合、次
-
C++の回転ドア
リクエストのリストがあり、requests [i]に[t、d]が含まれているとします。これは、時間tに人がドアに到着し、中に入る(内側は1を使用して示す)か、外側に出る(外側はを示す)ことを示します。 0を使用します。 したがって、ドアが1つしかなく、ドアの使用に1時間単位かかる場合、従わなければならないルールはほとんどありません- ドアは「in」の位置で始まり、最後の参加者が使用した位置に設定されます。 所定の時間tにドアに参加者が1人しかいない場合、参加者はドアを使用できます。 2人以上の参加者が参加したい場合は、最初の参加者が最初に参加し、次に以前に使用された方向が優先
-
C++のユニークな分数
各分数に[分子、分母](分子/分母)が含まれている分数のリストがあるとします。分数の数が-になるような分数の新しいリストを見つけました 彼らの最も削減された用語で。 (20/14は10/7になります。) (削減後の)重複する分数はすべて削除されます。 実際の値の昇順で並べ替えられています。 数値が負の場合、「-」記号は分子とともに表示されます。 したがって、入力が{{16、8}、{4、2}、{7、3}、{14、6}、{20、4}、{-6、12}}の場合、出力はbe [[-1、2]、[2、1]、[7、3]、[5、1]] これを解決するには、次の手順に従います-
-
C++のテレビ番組
テレビ番組のリスト、期間の別のリスト、および整数kがあるとします。ここでは、shows[i]とduration[i]は、i番目が視聴した名前と期間を示しています。人、私たちはk個の最も視聴された番組の合計視聴時間を見つけなければなりません。 つまり、入力が番組のようなものである場合:[Castle Play、 Fairy Tale Series、 Castle Play、 Jerry Mouse、 Rich Boy]、期間:[6、4 、6、14、5]およびk =2の場合、出力は26になります。 これを解決するには、次の手順に従います- 1つのマップを定義するm n:=vのサイズ