N個のコインを一列に並べて表示することを検討してください。各コインには頭か尾が見えます。これらのコインの隣接は、同じ面を示すコインの隣接する対の数である。コインを表すN個の整数からなる空でないゼロインデックス配列Aが与えられた場合、正確に1つのコインを逆転することによって得られる可能性のある最大の隣接関係を返す(すなわち、コインの1つを逆転させる必要がある)。配列Aの連続する要素は、行内の連続したコインを表します。配列Aには0と1だけが含まれます。 *たとえば、配列Aは6つの数字からなり、次のようになります。 * A [0] = 1 * A [1] = 1 * A [2] = 0 * A [3] = 1 * A [4] = 0 * A [5] = 0 * *関数は4を返します。隣接する2つのコインが同じすなわち、(0,1)および(4,5)である。 (0,1)、(1,2)、(2,3)、(4)の4つの隣接コインが存在するので、A [2]で表されるコインを反転させた後、 5)、より高い隣接性を得ることは不可能である。コインシーケンスのコードをデバッグ
public static int solution3(int[] A) {
int n = A.length;
int result = 0;
for (int i = 0; i < n - 1; i++) {
if (A[i] == A[i + 1])
result = result + 1;
}
int r = 0;
for (int i = 0; i < n; i++) {
int count = 0;
if (i >0) {
if (A[i - 1] != A[i])
count = count + 1;
else
count = count - 1;
}
if (i < n - 1) {
if (A[i + 1] != A[i])
count = count + 1;
else
count = count - 1;
}
r = Math.max(r, count);
}
return result + r;
}
コードの[最大3行は、必要な答えを得るために変更する必要があります!