中级农民
- 积分
- 275
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2014-5-21
- 最后登录
- 1970-1-1
|
- from operator import truediv, mul, add, sub
- result = set()
- def calculator(A):
- if not A: return False
- if len(A) == 1:
- result.add(A[0])
- for i in xrange(0, len(A)-1):
- j = i + 1
- for op in (truediv, mul, add, sub):
- if op is not truediv or A[j]:
- B = A[:i] + [op(A[i], A[j])] + A[j+1:]
- calculator(B)
- # 375
- # only posistive and 0???
- def maxCalculator(nums):
- n = len(nums)
- dp = [[0] * (n) for _ in range(n+1)]
- for idx, num in enumerate(nums):
- dp[idx][idx] = num
- for length in range(2,n+1):
- for start in range(0, n - length + 1):
- maxN = float('-inf')
- for i in range(start, start + length - 1):
- for op in (truediv, mul, add, sub):
- if op is not truediv or dp[i+1][start+length-1]:
- temp = op(dp[start][i], dp[i+1][start+length-1])
- maxN = max(maxN, temp)
- dp[start][start+length-1] = maxN
- return dp[0][n-1]
复制代码 |
|