Найти минимальную сумму элементов двумерного массива - C#
Формулировка задачи:
Вводим сначала кол-во строк и столбцов, потом сами элементы. Нужно с левого верхнего элемента двумерного массива до правой нижней найти минимальную сумму элементов массива. Можно перемещаться только вправо, либо вниз (влево и вверх перемещаться нельзя).
Пример:
Ввод:
Вывод:
Начал делать, задал сначала сам массив, дальше было много попыток, пытался находить в каждой строке минимум и складывать, то складывал вообще всё и пытался минимум найти, всё далеко не то.
Чтобы не позориться, вот только начало кода, дальше как быть - не знаю
Помогите сделать правильно, заранее спасибо
4 5
1 1 1 1 1
4 2 3 6 8
2 4 8 3 50
4 2 1 8 7
26
string[] line = Console.ReadLine().Split(); int n = int.Parse(line[0]); int m = int.Parse(line[1]); int[,] a = new int[n, m]; for (int i = 0; i < n; i++) { string[] line2 = Console.ReadLine().Split(); for (int j = 0; j < m; j++) { a[i, j] = int.Parse(line2[j]); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { //пытался тут сделать программу } }
Решение задачи: «Найти минимальную сумму элементов двумерного массива»
textual
Листинг программы
var array = new[,] { { 1, 1, 1, 1, 1 }, { 4, 2, 3, 6, 8 }, { 2, 4, 8, 3, 50 }, { 4, 2, 1, 8, 7 } }; var sums = new int[array.GetLength(0), array.GetLength(1)]; // Верхнее левое значение sums[0, 0] = array[0, 0]; // Первая колонка for (var i = 1; i < array.GetLength(0); i++) { sums[i, 0] = sums[i - 1, 0] + array[i, 0]; } // Первая строка for (var j = 1; j < array.GetLength(1); j++) { sums[0, j] = sums[0, j - 1] + array[0, j]; } // Остальная часть таблицы for (var i = 1; i < array.GetLength(0); i++) { for (var j = 1; j < array.GetLength(1); j++) { sums[i, j] = Math.Min(sums[i - 1, j], sums[i, j - 1]) + array[i, j]; } } for (var i = 0; i < array.GetLength(0); i++) { for (var j = 0; j < array.GetLength(1); j++) { Console.Write("{0,3}", sums[i, j]); } Console.WriteLine(); } Console.WriteLine(sums[sums.GetLength(0) - 1, sums.GetLength(1) - 1]);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д