Kezdőoldal » Számítástechnika » Programozás » Leghosszabb ismétlődés megtalá...

Leghosszabb ismétlődés megtalálása tömbben?

Figyelt kérdés

Van egy csak 0-kból és 1-esekből álló tömböm, pl ez:


int tomb[]={1,0,1,0,0,0,1,0,0}

Nekem azt kellene megtalálnom, hogy a leghosszabb 0-kból álló sorozat (ami itt 3 hosszú), melyik indexnél kezdődik (itt a 3as indexnél) és melyik indexnél végződik (itt az 5ös indexnél)


Jó régóta próbálkozom ciklusokkal/elágazásokkal de nem akar összejönni.

Köszi a segítséget!



2017. dec. 17. 19:38
 1/6 anonim ***** válasza:

4 változó kell hozzá:

- eddigi legtöbb száma

- jelenlegi szám

- az eddigi legtöbb kezdő index

- az eddigi legtöbb utolsó index


Megy a ciklusod, ha az aktuális érték 0, akkor a jelenelgi számhoz hozzáadsz egyet, ha 1, akkor összehasonlítod az eddigi legtöbbel, ha nagyobb, akkor eltárolod legtöbbnek

2017. dec. 17. 20:09
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
Nyilván kevesebb változóval is megoldható, csak így érthetőbb
2017. dec. 17. 20:10
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:

1. Első nullánál egy számlálót inkrementálsz amíg a nullát nulla követi. (a másik két lépésre már rá fogsz jönni te is)

2.

3.

2017. dec. 17. 20:14
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

A #2-es válaszát pontosítanám. Nem akkor tárolod el leghosszabbnak, ha 1. hanem vagy minden lépésben vagy külön a végén is megnézed. Hisz ha a leghosszabb 0-s sorozat a tömb végén van, akkor az ő megoldása nem találná meg.


Itt a kód:

[link]

2017. dec. 17. 20:15
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Illetve ha egy sorban és nem hatékonyan akarod, akkor:

Enumerable.Range(0, tomb.Length).OrderByDescending(x=>tomb.Skip(x).TakeWhile(y=>y==0).Count()).FirstOrDefault()

2017. dec. 17. 20:21
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Köszönöm szépen a válaszokat, a negyedik válaszoló kódjával sikerült megoldani :)
2017. dec. 17. 23:26

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!