注意下设置vector长度为n+1的时候, 有可能n为0, 然后这样是没办法直接就给num[1]赋值的, 数组会越界(可以直接设置vector长度为题目中给定数据的最大范围101)
1 class Solution { 2 public: 3 int getMaximumGenerated(int n) { 4 vector<int> num(101); 5 num[0] = 0; 6 num[1] = 1; 7 for (int i = 2; i <= n; i++) { 8 if (i % 2) num[i] = num[i / 2] + num[i / 2 + 1]; 9 else num[i] = num[i / 2]; 10 } 11 int ans = 0; 12 for (int i = 0; i <= n; i++) ans = max(ans, num[i]); 13 return ans; 14 } 15 };View Code