Find Largest Three Values - Loops Coding Tasks

Здравейте, започнах да решавам задачата: Find Largest Three Values ( Loops- Alpha Preparation)
Стигнах до тук:

  1. Създавам стринг, в който си записвам променливите.
    Как мога от стринг да превърна в array, за да мога чрез цикъл да достъпя променливите и да ги сравня?
    ИЛИ
  2. Как мога да си създам array в който директно да си записвам стойностите от inputa като числа, за да мога после с цикъл да обходя масива и да си сравня стойностите?
    Благодаря!

Здравей, последното ми решение на тази задача е с масив. Сортирам масива в обратен ред и принтирам първите 3 елемента.

Благодаря!

Когато сортираме масив от числа, първата лампичка, която трябва да ни светне е, че ще добавим допълнителна сложност от логаритъм от броя на всички числа, т.е. сложността по време ще стане О(n.log(n)) или казано с прости думи, няма да е линейна, а ще е малко по-бавна обработката на данните. За да бъде линейна е необходимо да обходим само веднъж (или константен брой пъти) масива.

Втората лампичка, която трябва да ни светне е, че освен усложнението по време ще имаме и допълнителна сложност по памет. Т.е. за да извлечем три търсени числа с дадено свойство, ние ще складираме всички числа в масива. Представете си че числата са 100000000, а ние искате само три от тях. Това ще е безсмислено хабене на памет.

Единственото, което ни е необходимо за да запазим тези три числа, които търсим са три променливи и логика, която да ги актуализира правилно при настъпването на всяко новодошло число от входа. Трите променливи ни осигуряват константна памет, а логиката ще е с константен брой операции за обработка на всяко новодошло число.