Найти минимальную сумму элементов двумерного массива - C#

Узнай цену своей работы

Формулировка задачи:

Вводим сначала кол-во строк и столбцов, потом сами элементы. Нужно с левого верхнего элемента двумерного массива до правой нижней найти минимальную сумму элементов массива. Можно перемещаться только вправо, либо вниз (влево и вверх перемещаться нельзя). Пример: Ввод:
4 5 1 1 1 1 1 4 2 3 6 8 2 4 8 3 50 4 2 1 8 7
Вывод:
26
Начал делать, задал сначала сам массив, дальше было много попыток, пытался находить в каждой строке минимум и складывать, то складывал вообще всё и пытался минимум найти, всё далеко не то. Чтобы не позориться, вот только начало кода, дальше как быть - не знаю
Листинг программы
  1. string[] line = Console.ReadLine().Split();
  2. int n = int.Parse(line[0]);
  3. int m = int.Parse(line[1]);
  4. int[,] a = new int[n, m];
  5. for (int i = 0; i < n; i++)
  6. {
  7. string[] line2 = Console.ReadLine().Split();
  8. for (int j = 0; j < m; j++)
  9. {
  10. a[i, j] = int.Parse(line2[j]);
  11. }
  12. }
  13. for (int i = 0; i < n; i++)
  14. {
  15. for (int j = 0; j < m; j++)
  16. {
  17. //пытался тут сделать программу
  18. }
  19. }
Помогите сделать правильно, заранее спасибо

Решение задачи: «Найти минимальную сумму элементов двумерного массива»

textual
Листинг программы
  1. var array = new[,]
  2. {
  3.     { 1, 1, 1, 1, 1 },
  4.     { 4, 2, 3, 6, 8 },
  5.     { 2, 4, 8, 3, 50 },
  6.     { 4, 2, 1, 8, 7 }
  7. };
  8.  
  9. var sums = new int[array.GetLength(0), array.GetLength(1)];
  10.  
  11. // Верхнее левое значение
  12. sums[0, 0] = array[0, 0];
  13.  
  14. // Первая колонка
  15. for (var i = 1; i < array.GetLength(0); i++)
  16. {
  17.     sums[i, 0] = sums[i - 1, 0] + array[i, 0];
  18. }
  19.  
  20. // Первая строка
  21. for (var j = 1; j < array.GetLength(1); j++)
  22. {
  23.     sums[0, j] = sums[0, j - 1] + array[0, j];
  24. }
  25.  
  26. // Остальная часть таблицы
  27. for (var i = 1; i < array.GetLength(0); i++)
  28. {
  29.     for (var j = 1; j < array.GetLength(1); j++)
  30.     {
  31.         sums[i, j] = Math.Min(sums[i - 1, j], sums[i, j - 1]) + array[i, j];
  32.     }
  33. }
  34.  
  35. for (var i = 0; i < array.GetLength(0); i++)
  36. {
  37.     for (var j = 0; j < array.GetLength(1); j++)
  38.     {
  39.         Console.Write("{0,3}", sums[i, j]);
  40.     }
  41.     Console.WriteLine();
  42. }
  43.  
  44. Console.WriteLine(sums[sums.GetLength(0) - 1, sums.GetLength(1) - 1]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.462 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы