Найти минимальную сумму элементов двумерного массива - 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]);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д