JSFiddle - React, Tailwind, and code Playground

by Nitish Kumar

JavaScript

function getAdjecent(m, n, curr) {
	var left, up;
	left = curr - 1;
	up = curr - n;
	if(curr == 1 || curr % n == 1) {
		//console.log(curr);
		left = 0;
	}
	if(curr < n) {
		up = 0;
	}
	var adj = [];[left, up];
	
	adj[0] = left;
	adj[1] = up;
	//console.log(adj);
	return adj;
}
		
function findMax(m,n, arr) {
    var temp = [];
    temp[0] = 0;
    for (var i = 1, l = arr.length; i <= l; i++) {
        var pair = getAdjecent(m, n, i);
        //console.log(pair);
        temp[i] = arr[i-1];
        var one = temp[pair[0]];
        var two = temp[pair[1]];
        //console.log([one, two]);
        if(one > two) {
            temp[i] += one;
        } else {
            temp[i] += two;
        }

        //console.log(temp[i]);
    }

    console.log(temp[m * n]);
}

//Inputs
//1,2,3
// 4,5,6
//7,8,9

findMax(3,3, [1,2,3,4,5,6,7,8,9]);