程序渣刷题时用动态规划刷leetcode第53题时用了暴力解法求前n项和,然后再用前n项和逐个前去之前的n项和,最后取的最大值,果不其然地超时了
不过也不是完全没有收获,意外整出了前缀和
前缀和,比如我们有一个数组nums = {1,3,5,2,1,6},其中第一个数字就是前缀,前缀和就是前n个数字之和,记作f[n],比如nums的f[1]就一定等于nums[0],第2项f[2]就是f[1]加上当前的数字nums[n-1],f[n]=f[n-1]+nums[n-1],因为我用的是前n项和,所以这个可能看起来有点迷惑,或者把f[n]视作 从下标为0到下标为n的数字和,包含nums[0]和nums[n],那么就能记作 f[n]=f[n-1]+nums[n]
做完可以用这个去通一下leetcode的53