Interjúfeladat megoldás?
Adott egy függvény aminek bemenete egy bináris fa gyökere és vissza kell adni a fában a belső csomópontok értékének összegét.
A belső csomópont definíciója:
- felette van legalább egy szint
- alatta van legalább egy szint
- ugyanazon a szinten tőle balra van legalább egy csomópont
- ugyanazon a szinten tőle jobbra van legalább egy csomópont
A következő fa esetében pl. 6 lenne az eredmény:
Ezt kaptam ma interjún de nem tudtam megoldani a megadott idő alatt. A céget nem szeretném elmondani.
A nyelvet én választhattam (Java-ban próbálkoztam).
Gyakorlatilag a következő függvény törzsét kellett volna megírnom:
int innerNodeSum(BinaryTreeNode root) { ... }
A BinaryTreeNode osztálynak 3 adattagja van, left, right és value.
Annyit mondtak hogy az összeg biztosan belefér egy 32 bites intbe.
Úgy indultam el hogy elkezdem rekurzívan bejárni a fát és egy mapben/dictionaryben tárolom a szülő-gyerek kapcsolatokat de eléggé belegabalyodtam, meg nem tudomtam végülis hogy az egymás melletti csomópontokat hogy vizsgáljam.
Hogy kellet volna ezt rendesen megcsinálni?
Tessék Főnök! Nem teszteltem, remélem jó lesz!
Ha nem, akkor 4-7 percet elpazaroltam erre a rossz megoldásra, ami alatt olthattam volna én is a kérdezőt :(
#23 Köszönöm.
Nem lett volna hülyeség iteratív megoldásban is gondolkodnom :)
Azért szerintem ez nem *annyira* triviális, mert ha jól értelmezem a kérdést nem az a feladat, hogy ha nincs gyereke a nodenak, hanem ha nem létezik alatta szint a fában egyáltalán. Én így oldottam volna meg, mondjuk kétségkívül nem olyan elegáns mint a #23-mas, meg tuti van egyszerűbb megoldás erre az értelmezésre is:
#25 a szint megnevezés szerintem elég egyértelmű, nem csak a gyerek számít. Ha csak azt kéne nézni, hogy van-e gyereke, akkor jóval egyszerűbb lenne a dolog.
De a #23-as megoldása jól számol. Legalábbis az én teszteseteimre.
Vagy én nem értem, hogy mit mondasz?
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!