思路都在代码(在文末)里了
我们来说一说不用数组(降维)的情况和实例
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
代码降维
此题不用数组的本质是降维(1 维到 0 维),和背包DP 2 维降 1 维是一个意思
降维的情况:
对于一个 n 维状态空间的问题,若计算当前状态时,仅依赖于状态空间中维度差为q(0≤q≤n)q(0≤q≤n)q(0≤q≤n)的历史状态,则可以将原本的n维存储结构,压缩为 n−qn-qn−q 维的存储结构。
例如本题只需要循环用输入的相邻两个数判断,完全没必要存数组!
实例:
0维实例(Q=N):
1维降0维实例:与本题有异曲同工之妙
2维降1维实例(经典背包问题):
代码