Přeskočit na obsah
TypeScript Ace

6. Two Sum

Najdi v poli nums dvě čísla na různých pozicích, jejichž součet je target. Vrať jejich indexy, menší index první.

Řešení vždy existuje a je jen jedno. Zvládneš to v O(n) pomocí Map?

Příklady

Vstupnums = [2, 7, 11, 15], target = 9
Výstup[0, 1]
Vstupnums = [3, 2, 4], target = 6
Výstup[1, 2]
Nápověda

Ke každému číslu x hledáš doplněk target - x. Ukládej do Map čísla, která už jsou za tebou (hodnota → index), a u každého nového se zeptej, jestli tam jeho doplněk je.

Ukázat řešení
1function twoSum(nums: number[], target: number): number[] {2  const seen = new Map<number, number>(); // hodnota → index3  for (let i = 0; i < nums.length; i++) {4    const need = target - nums[i];5    if (seen.has(need)) return [seen.get(need)!, i];6    seen.set(nums[i], i);7  }8  return [];9}10 
reseni.tsTypeScript 6.0.3
Tab odsadí · Esc a Tab opustí editor
Typová kontrola

Kód se zkontroluje automaticky, jakmile se načte TypeScript.

Testy5 testů

Napiš řešení a stiskni Spustit testy.