Kezdőoldal » Számítástechnika » Programozás » Hogy kéne megoldani ezt a...

Hogy kéne megoldani ezt a Python feladatot?

Figyelt kérdés

A függvény bemenete egy n elemű lista (2 <= n <= 10000, 1 <= nᵢ <= 1000) és egy k szám (1 <= k <= 50).

A lista elemei egymás utáni állomásokat jelképeznek, értékük relatív költséget jelent, egy állomásról átugrani egy másik állomásra a két állomás közti költségek különbsége (mindig nemnegatív érték).

Maximum k állomást ugorhatunk előre.

A függvény visszatérési értéke a legkisebb költség kell hogy legyen, amivel eljuthatunk az első állomásról az utolsóra.


Például [30, 20, 30, 50] a lista és k = 2.

Mivel k = 2, ezért 1 vagy 2 állomást ugorhatunk előre.

(ha k = 3 lenne, akkor 1, 2 vagy 3 állomást ugorhatnánk, k = 4-nél 1, 2, 3 vagy 4-et és így tovább)


A lehetséges utak:

1-2-3-4 (mindig 1-et ugrunk): |30-20|+|20-30|+|30-50| = 40

1-2-4 (először 1-et ugrunk, aztán 2-t): |30-20|+|20-50| = 40

1-3-4 (először 2-t ugrunk, aztán 1-et): |30-30|+|30-50| = 20


Így 20 a megoldás, ez a legkisebb költségű út.


Ha például [20, 20, 20] a lista, akkor a minimum költség 0, mert mindegy hova ugrunk, mindig |20-20| = 0 lesz a költség.


Ezt hogy kéne megcsinálni?

Azt próbáltam, hogy a jelenlegi állomás + k intervallumban megkeresem a minimumot és mindig oda ugrok, de ez nem mindig ad jó megoldást.



2020. júl. 19. 22:31
 1/4 anonim ***** válasza:
100%
Írj egy brute force megoldást, ami végig megy a lehetséges lépéseken, aztán nézd meg, hogy milyen számítások ismétlődnek és hogyan tudnád kizárni ezt az ismétlődést.
2020. júl. 20. 06:56
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

Ilyesmivel próbálkozok, talán van is egy működő megoldásom. For ciklussal végig nézem az első állomástól k-ig, azokból a pontokból pedig rekurzívan tovább és egy globális tömbbe mentem az eredményeket amiből aztán visszaadom a minimumot.

Az a probléma hogy nagyobb tömbökre nagyon lassú.

2020. júl. 20. 07:52
 3/4 anonim ***** válasza:
100%
2020. júl. 20. 08:31
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
köszönöm!
2020. júl. 20. 08:40

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!