class Solution:
def maxValue(self, grid: List]) -> int:
for i in range(len(grid)):
for j in range(len(grid)):
if not i | j:
pass
elif not i:
grid += grid
elif not j:
grid += grid
else:
grid += (a if (a := grid) > (b := grid) else b)
return grid[-1][-1]动态规划现学现用
def f349(ar:list)->int:
def f(L,m,n):
if m==1 and n==1:
return L
if m>1 and n==1:
return f(L,m-1,n)+L
if m==1 and n>1:
return f(L,m,n-1)+L
if m>1 and n>1:
return max(f(L,m-1,n),f(L,m,n-1))+L
x,y=len(ar),len(ar)
return f(ar,x,y)
ar=[
,
,
]
print(f349(ar))
def solve(Map):
n = len(Map)
m = len(Map)
Val = []
for i in range(n):
Val.append([])
for j in range(m):
Val.append(0)
Val = Map
for i in range(n):
for j in range(m):
if i > 0:
a = Val + Map
else:
a = 0
if j > 0:
b = Val + Map
else:
b = 0
if a or b:
Val = max(a, b)
return Val
def fun349(input_list):
m,n = len(input_list),len(input_list)
dp = [ for _j in range(n)]
for i in range(m):
for j in range(n):
if i == 0 and j == 0:
dp = input_list
elif i == 0:
dp = dp + input_list
elif j == 0:
dp = dp + input_list
else:
dp = max(dp, dp) + input_list
return dp[-1][-1]
TJBEST 发表于 2020-3-11 14:29
此法比较费空间,但是时间上还是不慢的。
为啥我看都看不懂。。。。。
现学了itertools。。。。
import itertools
import numpy as np
def f349(arr1):
lenth=len(arr1)
width=len(arr1)
arr2=np.reshape(arr1,lenth*width)
iter_move=(width-1)*str(1)+(lenth-1)*str(width)
move_list=set(itertools.permutations(iter_move,lenth+width-2))
# print(move_list)
count=0
init=arr2
sum_list=[]
for i in move_list:
for h in i:
count=count+int(h)
init += arr2
count=0
sum_list.append(init)
init = arr2
return max(sum_list)
def fun349(grid):
m = len(grid)
n = len(grid)
fuzhu = []
for index in range(0,m):
fuzhu.append()
minNum = min()
fuzhu=grid
for index in range(1,n):
fuzhu=fuzhu+grid
for index in range(1,m):
fuzhu=fuzhu+grid
col = line = 1
while col < m:
while line < n:
fuzhu=max(,fuzhu])+grid
line += 1
col +=1
line = 1
return fuzhu
TJBEST 发表于 2020-3-11 14:29
此法比较费空间,但是时间上还是不慢的。
借鉴了大神的思路{:10_254:},然后自己修改了下,思路转变为使用while求出一行行的最大值。
def solve(chessboard):
# 简单dp
# dp = max(dp, dp) + chessboard
# 每个chessboard只被访问一次 所以可以用chessboard存储dp的值
m = len(chessboard)
if not m:
return None
n = len(chessboard)
for i in range(m):
for j in range(n):
if not (i + j):
continue
if not i:
chessboard += chessboard
elif not j:
chessboard += chessboard
else:
chessboard += max(chessboard, chessboard)
return chessboard
l0stparadise 发表于 2020-3-11 22:15
为啥我看都看不懂。。。。。
动态规划
from itertools import permutations
def fun349(grid):
path = )-1)] +
max_value = 0
for i in permutations(path):
position =
value = grid
for j in i:
if j == 0:
position += 1
elif j == 1 :
position += 1
value += grid]]
if value > max_value:
max_value = value
return max_value
永恒的蓝色梦想 发表于 2020-3-12 08:59
动态规划
动态规划有没有好的资料推荐学习
fan1993423 发表于 2020-3-12 12:16
动态规划有没有好的资料推荐学习
我也只是从网上随便找了篇……不知道小甲鱼有没有
TJBEST 发表于 2020-3-11 14:29
此法比较费空间,但是时间上还是不慢的。
96 ms
Geoffreylee 发表于 2020-3-11 15:24
56 ms
风魔孤行者 发表于 2020-3-11 15:34
自己都有点看不下去
输入以下数据超时:
[, , ]
mdphd 发表于 2020-3-11 15:35
这个算法在m,n很大时应该会很快
60 ms
kinkon 发表于 2020-3-11 15:57
不好意思上传...
70 ms
风魔孤行者 发表于 2020-3-11 16:23
大佬,看了你的代码之后写的
输入以下数据超时:
[, , , , , , , , , , , ]
flamezyy 发表于 2020-3-11 16:33
估计超时了
嗯,输入以下数据超时:
[, , , , , , , , , , , ]