1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution { public: int getMaximumGenerated(int n) { if(n <= 1) return n; int ret = 0; vector<int> nums(n + 1, 0); nums[0] = 0; nums[1] = 1; for(int i = 1; i <= n / 2; ++i) { nums[2 * i] = nums[i]; ret = max(ret, nums[2 * i]); if(2 * i + 1 <= n) { nums[2 * i + 1] = nums[i] + nums[i + 1]; ret = max(nums[2 * i + 1], ret); } } return ret; } };
|