分析用f[i][j]表示从(1,1)到(i,j)的路径数,先初始化第一行和第一列的路径数,都只有1种走法。class Solution {public: int uniquePaths(int m, int n) { int f[110][110];//f[i][j]表示从(1,
分析用f[i]来表示数组中第i个位置的最大数组和,那么计算f[i]的时候就需要从f[i-1]转移过来,转移方程为f[i]=max(f[i-1]+nums[i],nums[i]),由于只与f[i]和f[i-1]有关,可以用pre来表示i-1,ans来表示i。class Solution {public
分析01背包是每个物品只能选一次,这里是每组只能选一个,我们可以遍历s[i]次。选出每组中的最大值即可。#include<iostream>using namespace std;const int N=110;int v[N][N],w[N][N],s[N],f[N];int n,m;