思路:
本题是要求解在1:n的石子堆内,先出手者的最大收益。
dp(i,j)表示,i:n的石子堆内,先出手者的最大收益。
代码:
1 | class Solution: |
反思:
dp问题分两种,1)每增加一项,寻找第i项与第i-1项之间的递推关系。2)将大的范围,逐渐减小至小范围,临界条件已知,最后求解大范围处的值。
暗里有光
本题是要求解在1:n的石子堆内,先出手者的最大收益。
dp(i,j)表示,i:n的石子堆内,先出手者的最大收益。
1 | class Solution: |
dp问题分两种,1)每增加一项,寻找第i项与第i-1项之间的递推关系。2)将大的范围,逐渐减小至小范围,临界条件已知,最后求解大范围处的值。
这周的心情,应该算是跌入谷底了吧。一篇杂谈,吐槽我低落的心情~
师父让我做一个自动出bin的工具,思路很简单,但当所有的需求都完成后,我居然花了一周。
今年华为的校招形势比往年都严峻,我不清楚我得多努力才能被认可,才能被留用。
在华为每天准点下班,居然被师父怼了。他对我的训斥,记忆犹新——命运要掌握在自己的手里,不要交给运气。如果你不好好干,就回去继续搞土木吧!
之前一直以为答辩时间早8月底,所以就一直很放松。但没想到提前到8月中旬了。时间不等人,我得马上进入备考状态了!
之前答应老师的一篇论文,估计8月底写不出来了。成果都有了,但如果让我现在分心去写论文,我做不到。上次面试阿里的悲剧,我绝不要重复!
LTE的那本书总算到了,接下来得要好好准备复习之前所学的内容了。
如果我们组今年只招1个,我一定要努力到,能留用的那1个就是我!I am the best, others are trashes!

题目:给你两个长度相等的整数数组,返回下面表达式的最大值:
1 | |arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |i - j| |
其中下标 i,j 满足 0 <= i, j < arr1.length。
思路:其实这道题的引申问题也就是求最远曼哈顿距离。而最远曼哈顿距离也可以引申为新增一个点,求该点到一群点的最大曼哈顿距离。
最大曼哈顿距离的求解方法:
1 | |x1 - x2| + |y1 - y2| |
1 | class Solution: |
反思:这道题其实很有借鉴意义,因为之前面试的时候就遇到过这道题,结果没有做出来。原来就是四种情况,每次保存每种情况最小的那个坐标即可。
leetcode 1130
思路:
dp[i,j]=min(dp[i,k]+dp[k+1,j]+max(arr[i:k+1])*max(arr[k+1:j+1])
因此,直接使用dp函数求解
1 | class Solution: |
反思:因为很久没有做leetcode的题目了,结果这道这么简单的题都没有做出来,是时候反省一下自己了。为什么最近自己总是想着玩,没有认真对待自己的代码。对于coder而言,代码就是自己的尊严呀!