Kezdőoldal » Számítástechnika » Programozás » Optimális esetben time és...

Optimális esetben time és space complexity? C++

Figyelt kérdés

Ennél a feladatnál mi optimális megoldásnál a time és space complexity?


Kapok egy max 200 000 elemű 32 bites integer tömböt és minden elemet össze kell szorozni az (index szerint) utána következő elemekkel és a szorzatok összegét visszaadni modulo 1000000007.


Pl ha 2 4 7 van a tömbben akkor ezt az értéket kell visszaadni:

(2*4 + 2*7 + 4*7) % 1000000007 = 50

A 2 után a 4 és a 7 áll tehát azokkal kell összeszorozni, a 4 után pedig csak a 7 (és a 7 után pedig semmi).


Ha végig megyek minden párokon az ugye N^2 lenne de itt nem minden páron megyek végig mert az elemeket csak az utánuk következővel rakom párba. Ez ettől még N^2? Vagy van ennél jobb megoldás? A space complexity pedig O(1)?

Nem megoldásra vagyok kíváncsi (arra megpróbálok rájönni magamtól) csak a time és space complexityre.



2020. aug. 30. 20:32
1 2 3
 1/28 A kérdező kommentje:
Azt kifelejtettem hogy pozitív számok lehetnek csak a tömbben (nem tudom számít-e).
2020. aug. 30. 20:50
 2/28 anonim ***** válasza:
63%

"Ez ettől még N^2?"

Igen.


"Vagy van ennél jobb megoldás?"

Igen, O(N) time, O(1) space.

2020. aug. 30. 20:59
Hasznos számodra ez a válasz?
 3/28 A kérdező kommentje:
Köszi a gyors választ ment a zöld.
2020. aug. 30. 21:03
 4/28 anonim ***** válasza:
Attól hogy csak az utána következő elemekkel csinálsz párt még N^2 lesz mert a konstans tényezők nem befolyásolják.
2020. aug. 31. 07:52
Hasznos számodra ez a válasz?
 5/28 A kérdező kommentje:
Igen erre közben rájöttem én is. Most O(N) megoldásra próbálok rájönni. (úgy látom a kettest lepontozta közben valaki pedig hasznos volt a válasza)
2020. aug. 31. 08:13
 6/28 anonim ***** válasza:
84%
Itt sokszor előfordul hogy lepontozzák a hasznos választ is. Nincs jelentősége.
2020. aug. 31. 11:56
Hasznos számodra ez a válasz?
 7/28 A kérdező kommentje:
Köszi a válaszokat
2020. aug. 31. 13:49
 8/28 anonim ***** válasza:
Mért van most ez a kérdés felhozva? hiszen a válasz megkaptad a #2-es hozzászólótól... nyilván csak annyit kell kihasználni, hogy a*b+a*c=a*(b+c), azaz előre ösdze tudod adni a számokat (O(N)) és kevesebb szorzás kell.
2020. szept. 7. 23:09
Hasznos számodra ez a válasz?
 9/28 A kérdező kommentje:
Az O(1) space hogy jön ki?
2020. szept. 8. 08:12
 10/28 anonim ***** válasza:
25%
Úgy hogy nem kell semmilyen tömböt lefoglalni az algoritmusnak, csak pár sima változó használata elég az érték kiszámításához.
2020. szept. 8. 12:02
Hasznos számodra ez a válasz?
1 2 3

További 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!