Алгоритм Левенштейна

Всем привет! Ребят объясните пожалуйста работу алгоритма Левенштейна на примере кода, код не мой я его скопипастил чтобы разобраться с работой. Объясните пожалуйста почему именно так делается.
И что за цифры в таблице на фото откуда их происхождение?
0050eb93113049be1fa37d1656bb921a

public static int calculateDistance(CharSequence source, CharSequence target) {
        if (source == null || target == null) {
            throw new IllegalArgumentException("Parameter must not be null");
        }
        int sourceLength = source.length();
        int targetLength = target.length();
        if (sourceLength == 0) return targetLength;
        if (targetLength == 0) return sourceLength;
        int[][] dist = new int[sourceLength + 1][targetLength + 1];
        for (int i = 0; i < sourceLength + 1; i++) {
            dist[i][0] = i;
        }
        for (int j = 0; j < targetLength + 1; j++) {
            dist[0][j] = j;
        }
        for (int i = 1; i < sourceLength + 1; i++) {
            for (int j = 1; j < targetLength + 1; j++) {
                int cost = source.charAt(i - 1) == target.charAt(j - 1) ? 0 : 1;
//Мое понимание заканчивается тут.
                dist[i][j] = Math.min(Math.min(dist[i - 1][j] + 1, dist[i][j - 1] + 1), dist[i - 1][j - 1] + cost);
                if (i > 1 &&
                        j > 1 &&
                        source.charAt(i - 1) == target.charAt(j - 2) &&
                        source.charAt(i - 2) == target.charAt(j - 1)) {
                    dist[i][j] = Math.min(dist[i][j], dist[i - 2][j - 2] + cost);
                }
            }
        }
        return dist[sourceLength][targetLength];
    }

Так надо было начать с описания алгоритма, а не кода )

https://ru.wikipedia.org/wiki/Расстояние_Левенштейна#Формула
https://habr.com/ru/post/117063/

Я читал и ни как не пойму

На эту тему и в гугле полно материалов на любой вкус: текст, видео, код, калькуляторы с описанием шагов, для любого уровня, вон вроде бы статья для “не математиков”.

Вряд ли кто-то сможет что-то новое более понятное придумать, особенно без конкретных вопросов (типа “почему тут надо делать ХХХ?”, “попробовал вручную построить эту таблицу, но на вот этом шаге получилось что-то не то”).