题目来源: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;
}
该博客介绍了一道LeetCode上的算法题,题目要求根据给定的数组n生成一个新数组,并遵循特定的递推规则。博客详细解析了如何通过直接模拟的方式实现这个过程,同时给出了Java代码实现,通过迭代更新数组元素并保持最大值。
500

被折叠的 条评论
为什么被折叠?



