C++で最大の連続する偶数の数を見つけます
n個の要素を持つ配列Aがあるとします。与えられた配列内の連続する偶数の最大数を見つける必要があります。したがって、配列がA =[1、2、3、4、6、8、7]のような場合、カウントは3になります。
これは簡単に解決できます。 2つのカウント変数が必要です。1つはmax_currentで、もう1つはmax_till_nowです。偶数が見つかった場合は、max_currentを増やしてから、max_till_nowと比較します。奇数の要素が見つかるたびに、max_countを0にリセットします。
例
#include<iostream> using namespace std; int maxEvenContiguous(int arr[], int n) { int max_current = 0, max_till_now = 0; for (int i = 0; i < n; i++) { if (arr[i] % 2 != 0) max_current = 0; else { max_current++; max_till_now = max(max_current, max_till_now); } } return max_till_now; } int main() { int arr[] = {1, 2, 3, 4, 6, 8, 7}; int n = sizeof(arr) / sizeof(arr[0]); cout << "Max contiguous even number count: " << maxEvenContiguous(arr, n); }
出力
Max contiguous even number count: 3
-
C++のRotatedSorted配列でRotationCountを検索します
回転してソートされた配列である配列があるとします。配列をソートするために必要な回転数を見つける必要があります。 (右から左への回転を検討します。) 配列が{15、17、1、2、6、11}のようであるとすると、配列を2回回転させて並べ替える必要があります。最終的な注文は{1、2、6、11、15、17}になります。ここでの出力は2です。 ロジックは単純です。気づいたら、回転数が最小要素のインデックスの値と同じであることがわかります。したがって、最小の要素を取得すると、そのインデックスが結果になります。 例 #include <iostream> using namespace st
-
グラフの最大カットを見つけるためのC++プログラム
このプログラムでは、グラフの最大カットを見つけるために、グラフのエッジ連結性を見つける必要があります。グラフのグラフのエッジ接続は、それがブリッジであることを意味し、グラフを削除すると切断されます。接続されたコンポーネントの数は、切断された無向グラフのブリッジを削除すると増加します。 関数と擬似コード Begin Function connections() is a recursive function to find out the connections: A) Mark the current node un visited. &nb