40 개의 임의 요소 (모든 값은 0 또는 1)의 테이블을 채우는 1 차원 배열이 있습니다. 나는 값의 가장 긴 연속 범위를 찾고 싶다. 예를 들어1 차원 배열 계산 동일한 요소
:
이 1
의 연속 4 개 값을 가지고 있기 때문에 111100101
에서 가장 긴 행이 1111
될 것이다.
011100
에서 결과는 111
입니다.
"다음 요소"를 확인하고 0 또는 1인지 확인하는 방법을 모르겠습니다. 첫 번째와 마찬가지로 1111 (개수 4)이지만 다음은 0 값이되므로 의미가 있습니다. 카운트 중지.
제 아이디어는이 값 (4)을 다른 배열 (예 : 111100101)에 배치하고 1의 값을 0으로 되돌려 놓았습니다. 그리고 그 과정을 다시 시작하십시오.
가장 큰 값을 찾으려면 배열에있는 0의 1의 수를 추적하는 가장 큰 값을 검사하는 다른 방법을 만들었습니다. 이것은 문제가 아닙니다.
하지만 같은 종류 (0 또는 1)의 요소 그룹의 모든 값을 갖는 배열 tabelLdr을 채울 방법을 찾을 수 없습니다. 의와는 두 번째로 가지 않을 것이다 (물론 배열의 다음 값이있는 경우! = 현재 상태로 (0 인 또는 1).
확인하는 경우 만약 내가 2를 아래의 코드에서 루프 카운터가public void BerekenDeelrij(byte[] tabel, byte[] tabelLdr)
{
byte LdrNul = 0, Ldréén = 0;
//byte teller = 0;
for (byte i = 0; i < tabel.Length; i++)
{
if (tabel[i] == 0)
{
LdrNul++;
//this 2nd if cleary does not work, but i have no idea how to implend this sort of idea in my program.
if (tabel[i] == 1) //if value != 0 then the total value gets put in the second array tabelLdr,
{
tabelLdr[i] = LdrNul;
LdrNul = 0
}
}
if (tabel[i] == 1)
{
Ldréén++;
if (tabel[i] == 0)
{
tabelLdr[i] = Ldréén;
Ldréén = 0;
}
}
}/*for*/
}