中级农民
- 积分
- 100
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2019-2-27
- 最后登录
- 1970-1-1
|
-baidu 1point3acres
都不是leetcode我都写好了你要吗
[hide=150]
#2-1 cost of a tree
def partition(x):
n = len(x) ..
if n%2 == 0:
return [[x[i:i+2] for i in range(0, n-1, 2)]]
else:
return [[x[i:i+2] for i in range(0, n-1, 2)] + [x[-1]],.--
[x[0]] + [x[i:i+2] for i in range(1, n-1, 2)]]
def cal(parts):
news = dict()
for p in parts:.google и
mx = []
total = 0.--
for x in p:
if isinstance(x, int):
mx.append(x)
else:
mx.append(max(x))
total += x[0] * x[1]
news[total] = mx
mi = min(news.keys())
return news[mi], mi
def cost(arr):
n = len(arr)
if n == 2:
return arr[0]*arr[1]
total = 0. 1point 3 acres
parts = partition(arr)
while n > 2:
new, temp = cal(parts)
n = len(new)
total += temp
return total + new[0]*new[1]
. .и.1point3acres
#2-7 lead a life
def calculateProfit(n, e, earning, cost):
mx = -1
cur = 0
for i in range(n):
# if not continue.google и
mx = max(mx, cur + e * earning[i])
# choose to work / not
if earning[i] > cost[i]:
cur += e * (earning[i] - cost[i])
return mx
# 2-4
def longest(s):
n = len(s)
l = [[None for _ in range(n)] for _ in range(n)]
for i in range(n):-baidu 1point3acres
l[i][i] = 1
for cl in range(2, n+1):-baidu 1point3acres
for i in range(n-cl+1):
j = i + cl - 1. ----
if s[i] == s[j]:. From 1point 3acres bbs
if cl == 2:
l[i][j] = 2
else:.
l[i][j] = l[i+1][j-1] + 2
else:. check 1point3acres for more.
l[i][j] = max(l[i][j-1], l[i+1][j])
-baidu 1point3acres
return l
def getScore(s):
prodmax = -1.--
res = longest(s)
for i in range(len(s)-1):
temp = res[0][i] * res[i+1][len(s)-1]. 1point3acres
prodmax = max(prodmax, temp). Waral dи,
return prodmax.
# Unique path
class dps_mem:. 1point3acres
def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
m, n = len(obstacleGrid), len(obstacleGrid[0]). ----
if obstacleGrid[0][0] == 1 or obstacleGrid[m-1][n-1] == 1:
return 0
mem = [[None for _ in range(n)] for _ in range(m)]
mem[m-1][n-1] = 1
mem, total = self.helper(obstacleGrid, 0, 0, m, n, mem)
return total. Χ
def helper(self, grid, i, j, m, n, mem):
if mem[i][j]:
return mem, mem[i][j]
total = 0
if i + 1 < m:
if grid[i+1][j] == 0:
mem, temp = self.helper(grid, i+1, j, m, n, mem)
total += temp
if j + 1 < n:.1point3acres
if grid[i][j+1] == 0:. ----
mem, temp = self.helper(grid, i, j+1, m, n, mem)
total += temp
mem[i][j] = total
return mem, total
# remember to take mod
class dp:.
def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
m, n = len(obstacleGrid), len(obstacleGrid[0])
if obstacleGrid[0][0] == 1 or obstacleGrid[m-1][n-1] == 1:
return 0
. 1point3acres.com
rts = [[None for _ in range(n)] for _ in range(m)]
rts[0][0] = 1
for i in range(1, m):
if obstacleGrid[i][0] == 1:
rts[i][0] = 0
else:
rts[i][0] = rts[i-1][0]. Χ
for j in range(1, n):
if obstacleGrid[0][j] == 1:
rts[0][j] = 0
else:. 1point3acres
rts[0][j] = rts[0][j-1]
-baidu 1point3acres
for i in range(1, m):. Waral dи,
for j in range(1, n):
if obstacleGrid[i][j] == 1:
rts[i][j] = 0
else:
rts[i][j] = rts[i-1][j] + rts[i][j-1]. 1point3acres.com
return rts[m-1][n-1] |
|