题目来源:https://leetcode-cn.com/problems/get-maximum-in-generated-array/
大致题意:
给一个数组n,生成大小为n+1的数组。生成规则如下:
- num[0] = 0, num[1] = 1
- 若当前索引为偶数,则 num[i] = num[i/2]
- 若当前索引为奇数,则 num[i] = num[i/2] + num[i/2 + 1]
思路
直接模拟
代码:
public int getMaximumGenerated(int n) {
if (n == 0) {
return 0;
}
int[] nums = new int[n+1];
nums[0] = 0;
nums[1] = 1;
int max = 1;
for (int i = 2; i < n+1; i++) {
if (i%2 == 0) {
nums[i] = nums[i/2];
}
else {
nums[i] = nums[i/2] + nums[i/2 + 1];
}
max = Math.max(max, nums[i]);
}
return max;
}