获得生成数组中的最大值
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<