Räkna vägar i ett rutnät
Summera vägar från hörn till hörn
Räkna vägar i ett rutnät är en gratis lektion i Förberedelse inför kodningsintervjuer på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Förberedelse inför kodningsintervjuer, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Förberedelse inför kodningsintervjuer innehåller totalt 4 lektioner.
Det klassiska rutnätsproblemet
Ni börjar längst upp till vänster i ett rutnät och vill ta Er till längst ned till höger. Varje steg går åt höger eller nedåt. Hur många olika vägar finns det?
Varför DP passar
Varje cell kan nås från cellen ovanför eller från cellen till vänster. Den överlappningen är precis varför detta är ett DP-problem.
Definiera tillståndet
Låt dp[i][j] vara antalet sätt att nå cell (i, j) från startpunkten. Att namnge tillståndet tydligt är halva arbetet.
Övergången
Ni kommer bara från ovan eller från vänster, så antalet är summan av dessa två värden. Det här är den övergång som driver hela tabellen.
dp[i][j] = dp[i-1][j] + dp[i][j-1]Basfallet
Startcellen kan nås på exakt ett sätt: genom att inte göra någonting. Därför är dp[0][0] 1 innan Ni fyller i något annat.
dp[0][0] = 1Kanterna har en väg
Cellerna i den översta raden eller den vänstra kolumnen har en enda rak väg. Deras antal är alltid 1, eftersom en av grannarna ligger utanför rutnätet.
Bygg tabellen
Skapa en m by n-tabell fylld med nollor. Om Ni bestämmer storleken från början blir indexeringen renare och överraskningar undviks.
dp = [[0] * n for _ in range(m)]Fyll i läsordning
Iterera först över rader och sedan över kolumner, uppifrån och ned samt från vänster till höger. Denna ordning garanterar att båda grannarna är klara innan Ni använder dem.
for i in range(m):
for j in range(n):
...Svarscellen
När tabellen är ifylld finns antalet vägar i den sista cellen. Svaret är dp[m-1][n-1], hörnet längst ned till höger.
answer = dp[m-1][n-1]Spara minne med en rad
Varje rad behöver bara raden ovanför, så Ni kan behålla en enda rad och uppdatera den på plats. Det minskar minnesåtgången till O(n).
row[j] += row[j-1]Det matematiska genvägen
Utan blockeringar är svaret en binomialkoefficient: välj vilka av det totala antalet steg som ska gå nedåt. DP är fortfarande bäst när hinder dyker upp.
Snabb kontroll
Ni fyller i dp[i][j] för en öppen inre cell. Vilken formel är rätt?
Sammanfattning: räkna vägar
Definiera dp som antalet vägar till en cell, sätt dp[0][0] till 1 och addera cellen ovanför och cellen till vänster. Hörnet innehåller svaret. 🧭
Lär dig Förberedelse inför kodningsintervjuer med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 90
- Lektioner
- 360
Vanliga frågor
Är lektionen ”Räkna vägar i ett rutnät” gratis?
Ja – hela texten till ”Räkna vägar i ett rutnät” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Förberedelse inför kodningsintervjuer, kan Ni uppgradera till CoddyKit PRO. Kursen i Förberedelse inför kodningsintervjuer innehåller totalt 4 lektioner.
Vad lär jag mig i ”Räkna vägar i ett rutnät”?
Summera vägar från hörn till hörn Ni övar på Förberedelse inför kodningsintervjuer med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Förberedelse inför kodningsintervjuer?
Du behöver inga förkunskaper. Utbildningen i Förberedelse inför kodningsintervjuer på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Räkna vägar i ett rutnät”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Förberedelse inför kodningsintervjuer-lektionen?
Ja. Varje Förberedelse inför kodningsintervjuer-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Räkna vägar i ett rutnät
- Minsta vägsumma med hinder
- Längsta gemensamma delsekvens
- Editeringsavstånd steg för steg