leetcode每日打卡_1646
1.題目
給你一個整數 n 。按下述規則生成一個長度為 n + 1 的數組 nums :
nums[0] = 0
nums[1] = 1
當 2 <= 2 * i <= n 時,nums[2 * i] = nums[i]
當 2 <= 2 * i + 1 <= n 時,nums[2 * i + 1] = nums[i] + nums[i + 1]
返回生成數組 nums 中的 最大 值。
示例 1:
輸入:n = 7
輸出:3
解釋:根據規則:
nums[0] = 0
nums[1] = 1
nums[(1 * 2) = 2] = nums[1] = 1
nums[(1 * 2) + 1 = 3] = nums[1] + nums[2] = 1 + 1 = 2
nums[(2 * 2) = 4] = nums[2] = 1
nums[(2 * 2) + 1 = 5] = nums[2] + nums[3] = 1 + 2 = 3
nums[(3 * 2) = 6] = nums[3] = 2
nums[(3 * 2) + 1 = 7] = nums[3] + nums[4] = 2 + 1 = 3
因此,nums = [0,1,1,2,1,3,2,3],最大值 3
示例 2:
輸入:n = 2
輸出:1
解釋:根據規則,nums[0]、nums[1] 和 nums[2] 之中的最大值是 1
示例 3:
輸入:n = 3
輸出:2
解釋:根據規則,nums[0]、nums[1]、nums[2] 和 nums[3] 之中的最大值是 2
提示:
0 <= n <= 100
題解:
#include <stdio.h>int recursion(int n) {int i = 0;if(n == 0 || n == 1)return n;elsefor(;;i++){if(i * 2 == n)return recursion(i);if(i * 2 + 1 ==n)return recursion(i) +recursion(i + 1);} }int main() {int n = 7;int max = 0;max = recursion(n) > max ? recursion(n) : max;printf("%d\n",max ); }思路:遞歸
總結
以上是生活随笔為你收集整理的leetcode每日打卡_1646的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多目标进化群体的多样性
- 下一篇: 计算机科学与技术第四轮学科评估结果,全国