Pole jsou šikovný a výkonný nástroj v programování. Jsou souborem prvků jednoho typu uspořádaných v určitém pořadí. Často je úkolem najít a přenést na obrazovku číslo z pole, které se opakuje. To může být užitečné při zpracování velkého množství dat, analýze statistik a dalších úkolů.
K vyřešení tohoto problému můžeme využít cykly a podmínky. Nejprve musíte projít všechny prvky pole a zkontrolovat, zda se každé číslo opakuje. Pokud se číslo opakuje, musíme ho stáhnout.
Jak najít opakující se číslo v poli
Opakující se čísla v poli mohou způsobit problémy se zpracováním dat. K určení těchto opakování však existují různé metody. Zvažte několik přístupů:
- Metoda pomocí vnořených cyklů:
- Projděte každý prvek pole.
- U každého prvku zkontrolujte, zda je v poli opakování.
- Pokud je nalezeno opakování, vytáhněte číslo.
- Metoda pomocí hash tabulky:
- Vytvořte hash tabulku.
- Projděte každý prvek pole.
- Zkontrolujte, zda je v hash tabulce položka.
- Pokud je prvek již přítomen, vyveďte číslo.
- Pokud položka chybí, přidejte ji do hash tabulky.
- Metoda pomocí třídění:
- Seřaďte pole.
- Projděte každý prvek pole a porovnejte jej s předchozím prvkem.
- Pokud se prvek opakuje, vyveďte číslo.
Vyberte přístup, který nejlépe vyhovuje vašemu úkolu, a použijte jej k nalezení opakujícího se čísla v poli.
Definice úkolu
V tomto úkolu máme pole čísel a musíme najít číslo, které se v něm opakuje. Naším úkolem je napsat program, který toto číslo najde a uvede ho na obrazovku.
K vyřešení tohoto problému můžeme použít různé algoritmy, například:
- Projít všemi prvky pole a porovnat každý prvek se zbytkem prvků pro vyhledávání opakování;
- Použít slovník nebo sadu (set) k uložení již dokončených prvků a ověření opakování při procházení polem;
- Seřadit pole a provést jeden průchod, abyste našli duplicitní prvky.
Jaký algoritmus zvolit, závisí na velikosti pole a požadavcích na rychlost programu. Po nalezení opakujícího se čísla jej můžeme přenést na obrazovku nebo jej použít v dalších výpočtech.
Použití cyklu k vyhledávání
Pokud jsou v poli duplicitní čísla, můžete k jejich nalezení použít cyklus. Chcete-li to provést, můžete vytvořit cyklus, který bude procházet všemi prvky pole a zkontrolovat, zda má aktuální prvek duplikáty.
Jeden způsob realizace takového cyklu může být následující:
| var | arr | = | [1, 2, 3, 4, 5, 2, 6, 7, 3] | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| for | (var | i | = | 0; | i | arr.length; | i++) | |||
| var | num | = | arr[i]; | |||||||
| for | (var | j | = | i | + | 1; | j | arr.length; | j++) | |
| if | (arr[j] | === | num) | |||||||
| console.log | (num); | |||||||||
| > | ||||||||||
| > | ||||||||||
| > |
Použití hash tabulky
Hash tabulka je datová struktura, která Vám umožňuje efektivně organizovat vyhledávání a přístup k prvkům. V kontextu úlohy Hledání duplicitního čísla v poli může být hash tabulka užitečným nástrojem.
Hash tabulka používá hash funkci k převodu klíče prvku na index, podle kterého bude položka uložena. To umožňuje dosáhnout konstantní časové složitosti při hledání prvků, protože k prvku je přístup přímo prostřednictvím jeho indexu.
Algoritmus použití hash tabulky k vyřešení problému hledání duplicitního čísla může být následující:
- Vytvoření prázdné hash tabulky.
- Procházíme řadou čísel.
- Pro každé číslo:
- Zkontrolujte, zda je číslo v hash tabulce.
- Pokud je číslo již v hash tabulce, znamená to, že se opakuje. Můžete dokončit průchod kolem pole a vrátit toto číslo.
- Pokud číslo není nalezeno v hash tabulce, přidejte jej do ní.
- Pokud po průchodu všemi čísly není nalezeno duplicitní číslo, vraťte zprávu, že duplicitní prvek chybí.
Použití hash tabulky umožňuje výrazně snížit časovou složitost algoritmu pro vyhledávání duplicitního čísla snížením na O (n), kde n je počet prvků v poli.
Způsob třídění a porovnávání prvků
K nalezení opakujícího se čísla v poli je nutné použít způsob třídění a porovnávání prvků.
1. Třídění prvků pole:
- Pomocí funkce třídění seřaďte prvky pole podle vzestupné nebo sestupné polohy.
- To umožní seskupovat stejné prvky po sobě.
2. Porovnání prvků pole:
- Projděte seřazené pole a porovnejte každý prvek s předchozím.
- Pokud jsou prvky stejné, pak se číslo opakuje v poli.
- Když je nalezeno duplicitní číslo, zobrazte jej v požadovaném formátu.
- Můžete například odvodit duplicitní číslo jako textovou zprávu nebo jej přidat do nového pole.
Použití způsobu třídění a porovnávání prvků tak umožňuje najít duplicitní čísla v poli a provádět s nimi potřebné kroky.
Kontrola přítomnosti duplicitních prvků v poli
Jedním z nejjednodušších způsobů je použití tabulky (hash tabulky) ke sledování opakování. Můžeme vytvořit prázdnou tabulku a postupně zkontrolovat každý prvek pole. Pokud je prvek již přítomen v tabulce, znamená to, že jsme se s tímto prvkem již setkali dříve a opakuje se.
| Algoritm | Dodací lhůta | Prostor |
|---|---|---|
| Použití tabulky | O(n) | O(n) |
Dalším způsobem je použití třídění. Můžeme nejprve Seřadit pole a poté zkontrolovat páry sousedních prvků. Pokud jsou dva sousední prvky stejné, znamená to, že jsme našli opakování.
| Algoritm | Dodací lhůta | Prostor |
|---|---|---|
| Použití třídění | O(nlogn) | O(1) |
Oba přístupy mají své výhody a nevýhody a výběr konkrétního přístupu závisí na úkolu a omezeních.