获得生成数组中的最大值


Leetcode 1646.获得生成数组中的最大值

题目描述

给你一个整数n。按下述规则生成一个长度为n+1的数组nums:
nums[0]=0,nums[1]=1。
当2<=2i<=n时,nums[2i]=nums[i];
当 2<=2i+1<=n时,nums[2i+1]=nums[i]+nums[i+1]。

返回生成数组nums中的最大值。

题解:

因为数组范围1-100,直接打表记录即可。

class Solution {
public:
    int getMaximumGenerated(int n){
        vectornums(101);
        nums[0]=0,nums[1]=1;
        for(int i=2;i<=100;i++){
            if(i%2==0) nums[i]=nums[i/2];
                else nums[i]=nums[i/2]+nums[i/2+1];
        }
        int ans=INT_MIN;
        //for(auto i:nums) cout<