永恒的蓝色梦想 发表于 2020-3-11 18:57:09

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]动态规划现学现用

ouyunfu 发表于 2020-3-11 19:18:52

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))

Unicorn# 发表于 2020-3-11 19:50:22

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

archlzy 发表于 2020-3-11 20:26:22

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]

l0stparadise 发表于 2020-3-11 22:15:30

TJBEST 发表于 2020-3-11 14:29
此法比较费空间,但是时间上还是不慢的。

为啥我看都看不懂。。。。。

l0stparadise 发表于 2020-3-12 00:44:02

现学了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)

派生小生 发表于 2020-3-12 01:24:53

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

派生小生 发表于 2020-3-12 01:27:26

TJBEST 发表于 2020-3-11 14:29
此法比较费空间,但是时间上还是不慢的。

借鉴了大神的思路{:10_254:},然后自己修改了下,思路转变为使用while求出一行行的最大值。

tzczjh 发表于 2020-3-12 07:36:05

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

永恒的蓝色梦想 发表于 2020-3-12 08:59:14

l0stparadise 发表于 2020-3-11 22:15
为啥我看都看不懂。。。。。

动态规划

776667 发表于 2020-3-12 10:52:51

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

fan1993423 发表于 2020-3-12 12:16:36

永恒的蓝色梦想 发表于 2020-3-12 08:59
动态规划

动态规划有没有好的资料推荐学习

永恒的蓝色梦想 发表于 2020-3-12 12:18:05

fan1993423 发表于 2020-3-12 12:16
动态规划有没有好的资料推荐学习

我也只是从网上随便找了篇……不知道小甲鱼有没有

zltzlt 发表于 2020-3-12 12:57:37

TJBEST 发表于 2020-3-11 14:29
此法比较费空间,但是时间上还是不慢的。

96 ms

zltzlt 发表于 2020-3-12 12:58:12

Geoffreylee 发表于 2020-3-11 15:24


56 ms

zltzlt 发表于 2020-3-12 12:59:05

风魔孤行者 发表于 2020-3-11 15:34
自己都有点看不下去

输入以下数据超时:

[, , ]

zltzlt 发表于 2020-3-12 13:01:37

mdphd 发表于 2020-3-11 15:35
这个算法在m,n很大时应该会很快

60 ms

zltzlt 发表于 2020-3-12 13:02:46

kinkon 发表于 2020-3-11 15:57
不好意思上传...

70 ms

zltzlt 发表于 2020-3-12 13:24:16

风魔孤行者 发表于 2020-3-11 16:23
大佬,看了你的代码之后写的

输入以下数据超时:

[, , , , , , , , , , , ]

zltzlt 发表于 2020-3-12 13:24:54

flamezyy 发表于 2020-3-11 16:33
估计超时了

嗯,输入以下数据超时:

[, , , , , , , , , , , ]
页: 1 [2] 3
查看完整版本: Python:每日一题 349