Нахождение минимальной стоимости, которая соединит все положительные элементы в 2D списке - PullRequest
0 голосов
/ 14 октября 2018

Поэтому я пишу программу для поиска минимального пути, которая будет связывать только положительные элементы.Пример:

-1 10 -1 
10  2 10    
-1 10 -1

Таким образом, в этом примере средний элемент 2 соединит все положительные значения. Поэтому стоимость равна 2.

Мой код выглядит следующим образом:

   import sys 
   def minCost(cost, m, n): 
       if (n < 0 or m < 0): 
          return sys.maxsize 
       elif (m == 0 and n == 0): 
           return cost[m][n] 
       else: 
           if(cost[m][n]>=0):
              return cost[m][n] + min( minCost(cost, m-1, n-1), 
                            minCost(cost, m-1, n), 
                            minCost(cost, m, n-1) ) 
    def min(x, y, z): 
       if (x < y): 
          return x if (x < z) else z 
       else: 
          return y if (y < z) else z 
  s =input()
  b=[list(map(int, x.split("@"))) for x in s.split("#")]
  print(minCost(b,len(b),len(b[0])))

Я получаю ответ, отличный от ожидаемого.(Примечание: ввод - это строка типа «1 @ 2 # 1 @ 3 # 1 @ 4», где @ представляет строки, а # представляет столбец)

...