Algorithm
https://leetcode-cn.com/problems/maximum-subarray/
最大子序也是dp中常见的问题。
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
我在初次解答这类问题时候,陷入了误区。我以为要把 [4,-1,2,1] 这串找出来(实际上也是可以找出来......),然后左右逼近搞了半天,用上dp后感觉就变简单了。
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
if len(nums)==1:
return nums[0]
for i in range(1,len(nums)):
nums[i] = max(nums[i-1]+nums[i],nums[i])
return max(nums)
上面的解法,用nums[i] 作为中间变量存储。实际上可以另外设置tmp,记录下最大值,这样最后可以直接返回,不用再求一遍 max(nums)
Review
https://medium.com/@eminetto/full-stack-vs-full-cycle-developer-2a454942291b
全栈工程师VS全周期工程师,这是一个值得思考的问题。
Tip
这周没学到啥技巧(离职休息了几天)
Share
- https://github.com/encode/requests-async
- encode (搞 drf 的那个团队)为 requests 加上了 async/await
- https://redis.io/topics/data-types-intro
- Redis 数据结构介绍。学习一门技术最好的方式就是读官方文档。
- http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html
- OAuth 2.0 的四种方式
- http://www.ituring.com.cn/book/2013
- 《OAuth 2实战》图灵出的新书