非除算条件でソートされた配列を見つけるためのC++コード
数nがあるとします。 n個の要素を持つ配列Aを作成するとします。 Aは昇順で並べ替えられ、すべての要素が異なります。 2からnまでのすべてのiについて(配列インデックスが1から始まることを考慮)A[i]はA[i-1]で割り切れません。
したがって、入力がn =7の場合、出力は[2、3、4、5、6、7、8]
になります。これを解決するには、次の手順に従います-
for initialize i := 2, when i <= n + 1, update (increase i by 1), do: print i
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; void solve(int n){ for (int i = 2; i <= n + 1; i++){ printf("%d, ", i); } } int main(){ int n = 7; solve(n); }
入力
7
出力
2, 3, 4, 5, 6, 7, 8
-
C++の整数の配列で最大の積を持つペアを見つけます
配列Aがあるとすると、n個の異なる要素があります。 xとyの積が最大になるように、配列Aからペア(x、y)を見つける必要があります。配列には正または負の要素が含まれる場合があります。配列がA=[-1、-4、-3、0、2、-5]のようであるとすると、積が最大になるため、ペアは(-4、-5)になります。 この問題を解決するには、positive_max、positive_second_max、negative_max、negative_second_maxの4つの数値を追跡する必要があります。最後に、(positive_max *positive_second_max)が(negative_ma
-
C++で許可されている重複を含む配列内の固定小数点を検索します
ここでは、特定の配列で固定小数点を見つける方法を説明します。配列では、値がそのインデックスと同じである場合、1つの要素は固定小数点として示されます。このプログラムは、存在する場合は値を返し、そうでない場合は-1を返します。配列は負の数も保持できます。そして、データ要素がソートされます。ここでは、重複する要素を配列に含めることができます。 ここでは、二分探索アプローチを使用して、O(log n)時間でこの問題を解決します。ただし、いくつかの変更が必要です。通常の二分探索を使用すると、重複する要素に対して失敗する可能性があります。左をチェックするには、min(mid – 1、midValue)か