Suma dwóch liczb’ to kolejne zadanie, które, ćwiczy nasze zdolności programistyczne oraz pojawia się na rozmowach rekrutacyjnych. A brzmi ono następująco:

Zbadaj czy na liście licz A, znajdują się dwie liczby – a i b, których suma wynosi liczbę L.

Czyli przykładowo, mamy podaną listę A = [1,3,5,2,11,7] . Należy sprawdzić czy suma, którychkolwiek liczb na liście wynosi 9. W tym prostym przykładnie już ‘na oko’ widzimy że będą to liczby 2 oraz 7. No dobrze, ale zastanówmy się jak mógłby wyglądać nasz algorytm.

Rozwiązanie 1 – najprostsze.

1. Przeszukujemy listę, za pomocą pętli For.

2. Dla każdej liczby z listy, powtarzamy przeszukiwanie całego łańcucha i sprawdzamy czy jest w nim liczba, która po zsumowaniu wynosi tyle co nasza liczba L.

3. Po znalezieniu, przerywamy.

Tak samo jak w sortowaniu bąbelkowym, mamy tutaj do czynienia, z pętlami zagnieżdżonymi.

Przykładowe kody:

Python

Rozwiązanie 2

Rozwiązanie 2, zostawiamy w rękach czytelnika, natomiast my damy tylko wskazówkę.

W ćwiczeniu dotyczącym zliczania liter w Python, zastosowaliśmy słownik, jako ‚hash table’, gdzie kluczem była litera, natomiast, jako wartość, ilość razy jaka występuje.

Jak możemy zastosować tę samą ideę, do rozwiązania naszego zadania?

A możemy przejściu przez listę liczb za pomocą pętli for, wykonywać operacje:

  • dodawać obecną liczbę do hash table
  • sprawdzać czy liczba, której szukamy istnieje w hash table
  • jeżeli tak, to kończymy, jeżeli nie to kontynuujemy naszą pętle for

W ten sposób, nie potrzebowali byśmy zagnieżdzonej pętli for, a tylko i wyłącznie przejrzeć listę raz.

Ćwiczenia Python, dla początkujących

  1. Wstęp do kursu
  2. FizzBuzz
  3. Najmniejsza i największa liczba
  4. Zliczanie liter
  5. Sortowanie bąbelkowe
  6. Suma dwóch liczb <– bieżąca lekcja
  7. Wyszukiwanie binarne
  8. Gra w orła i reszkę
  9. Podsumowanie oraz dalsze kroki