152.乘积最大子序列
依然是一道典型的dp题,我好像发现了,热题好多都是dp的,我也真的是醉了。
首先声明max为nums[0],接下来会更新,当下标为1时以1结尾的最大值,最小值都要保存下来,至于为什么不是只保存最大值,这是因为我们无法判断下一个数到底是正的还是负的,假如下一个数是负的话,那么上一次的最大值就会变成最小值,最小值会变成最大值,所以这里得有两个dp,我们每次比较时,就是拿新的数,原来的最大值与新的数的乘积,原来的最小值与新的数的乘积来比较成为新的改下标的最大最小值。然后再拿最大值去与max比较。
不得不说动态规划对我来说确实难