ここでは大きな疑問があります。コードの下にO(N)複雑さのコードがあります。 O(N^2)、 私はO(N)でそれをするtreidを減らすことを試みます。 exempleのO(N)Complexityで3で割り切れる最長の部分配列を見つけてください。
private static int f (int[]a, int low, int high)
{
int res = 0;
for (int i=low; i<=high; i++)
res += a[i];
return res;
}
public static int what (int []a)
{
int temp = 0;
for (int i=0; i<a.length; i++)
{
for (int j=i; j<a.length; j++)
{
int c = f(a, i, j);
if (c%3 == 0)
{
if (j-i+1 > temp)
temp = j-i+1;
}
}
}
return temp;
}
ちょうど現在のアイテムが別の変数 'max' 3.コピー' count'で割り切れる場合 'count'変数をインクリメントし、アレイ上回反復現在の項目が3で割り切れないときには 'count'をリセットします。 – rom1v
あなたのコードを最初に説明できますか?あなたは*サブアレイ*を探したいと言っていますが、あなたが戻ってくるのは*番号*です。 – Holger
まず、いくつかの例(入力引数、期待される結果)を追加してください。 –