Tolong jelaskan mengenai v0[i] = i dari Jarak Levenshtein

for i from 0 to m-1:

// hitung v1 (baris jarak saat ini) dari baris v0 sebelumnya

// elemen pertama v1 setara dengan A[i+1][0]

//   jarak editnya adalah menghapus (i+1) chars dari s agar sama dengan t yang kosong

v1[0] = i + 1

// gunakan formula untuk mengisi sisa elemen di baris

for j from 0 to n-1:

// hitung biaya untuk A[i+1][j+1]

deletionCost := v0[j + 1] + 1

insertionCost := v1[j] + 1

substitutionCost := v0[j] + 1;

v1[j + 1] := minimum(deletionCost, insertionCost, substitutionCost)

// salin v1 (baris saat ini) ke v0 (baris sebelumnya) untuk iterasi selanjutnya

// karena data di v1 tidak pernah dipakai lagi, swap tanpa copy dapat lebih efisien

// setelah swap terakhir, hasil di v1 ada di v0

return v0[n]Variasi dua baris ini masih kurang optimal — jumlah memori yang diperlukan dapat dikurangi menjadi satu baris dan satu word of overhead (indeks), untuk caching yang lebih baik.