Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Минимальные затраты (https://javascript.ru/forum/misc/79812-minimalnye-zatraty.html)

Vasya_Marg 28.03.2020 19:43

Минимальные затраты
 
Дана матрица A элемент [i, j] которого показывает нужную сумму для перемещения из позиции i в позицию j. У нас есть числа k1 и k2. k1 показывает номер строки максимального элемента главной диагонали матрицы а k2 номер столба максимального элемента побочной диагонали. Нужно найти минимальную затрату, которую можно сделать для перемещения из позиции [0, 0] в позицию [k1, k2].

Например

A = [
         [1, 2, 3], 
         [4, 5, 6],
         [1, 5, 3]
    ]


в этом случае k1 = k2 = 1
И в этом случае наша задача продвигаться в позицию [1, 1]. Оптимальным вариантом будет продвигаться в позицию [0, 1] и потом в позицию [1, 1]. В этом случае A[0, 0] + A[0, 1] = 3.

function minCost (x) {
        let k1 = 0;
        let k2 = 0;
        
        let max1 = x[0][0];
        let max2 = x[0][x.length - 1];
        
        for (var i = 0; i < x.length; i++) {
            for (var j = 0; j < x[i].length; j++) {
                if (i == j) {
                    if (x[i][j] > max1) {
                        max1 = x[i][j];
                        k1 = i;
                    }
                }
                if (i + j == x.length - 1) {
                    if (x[i][j] > max2) {
                        max2 = x[i][j]
                        k2 = j;
                    }
                }
            }
        }
    }

console.log(minCost([[1, 2, 3], [4, 8, 2], [1, 5, 3]]))       // 3
console.log(minCost([[1, 9, 1], [4, 0, 9], [0, 7, 9]]))       // 12
console.log(minCost([[1, 9, 9], [4, 1, 9], [12, 7, 9]]))       // 5
console.log(minCost([[0, 0, 0], [0, 0, 0], [0, 0, 0]]))       // 0


Нужно написать функцию которая получает матрицу и вернет минимальную затрату которая нужна для перемещения из точки k1 в точку k2.

Поможете решить задачу?


Часовой пояс GMT +3, время: 17:00.