代码中有说明
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算 * @param n int整型 数组的长度 * @param array int整型vector 长度为n的数组 * @return long长整型 */ /* f[i][0]表示前i个数(第i-1结束)选择当前位 f[i][1]表示前i个数(第i-1结束)不选择当前位 则: f[i][0]=f[i-1][1]+num[i-1] f[i][1]=max(f[i-1][0],f[i-1][1]) 边界: f[0][0]=0; f[0][1]=0; */ long long subsequence(int n, vector<int>& array) { // write code here int f[100010][3]; f[0][0]=f[0][1]=0; for(int i=1;i<=n;i++) { f[i][0]=f[i-1][1]+array[i-1]; f[i][1]=max(f[i-1][0],f[i-1][1]); } return max(f[n][0],f[n][1]); } };