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

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

给你一个整数 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

解题思路

按照规则,迭代生成数组

  • 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]
    求出数组的最大值

代码

class Solution {public int getMaximumGenerated(int n) {int[] dp = new int[n + 1];dp[0]=0;if(n==0) return 0;int res=1;dp[1]=1;for (int i=2;i<=n;i++){if (i%2==0){dp[i]=dp[i/2];}else dp[i]=dp[i/2]+dp[i/2+1];res=Math.max(res,dp[i]);}return res;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker保存日志文件到本地

其实很简单 docker logs 你需要添加的额外参数 容器id >文件名称 然后查看这个文件就可以了&#xff0c;也可以通过ftp协议下载到本地

防反射JavaScript –如何让您的JS等待

Debounce methods do not execute when invoked. Instead, they wait for a predetermined time before executing. If the same method is called again, the previous is cancelled and the timer restarts.防抖动方法在调用时不执行。 而是&#xff0c;它们在执行之前等待预…

21天学通Visual.Basic pdf

下载地址&#xff1a;网盘下载《21天学通Visual Basic(第2版)》是Visual Basic 6.0的入门教程&#xff0c;主要针对没有程序设计基础的读者&#xff0c;详细介绍了Visual Basic 6.0的基本概念和编程技术。书中通过大量的范例及综合练习来介绍Visual Basic 6.0的基本概念、语言特…

297. 二叉树的序列化与反序列化

297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作&#xff0c;进而可以将转换后的数据存储在一个文件或者内存中&#xff0c;同时也可以通过网络传输到另一个计算机环境&#xff0c;采取相反方式重构得到原数据。 请设计一个算法来实现…

交互式图表_如何构建罗马数字转换器和交互式罗马数字图表

交互式图表The Roman numerals are no longer an essential part of our daily lives. But we do use them when designing monuments, clocks, and even for sporting events.罗马数字不再是我们日常生活中必不可少的部分。 但是我们在设计纪念碑&#xff0c;钟表甚至体育赛事…

Python 08 面向对象

Python 面向对象 1、编程范式 2、面向对象特性 3、属性、方法 4、三大特性 5、高级方法 6、类的特殊成员方法 7、反射 8、异常处理 9、单例模式 一、编程范式 编程&#xff1a;程序员用特定的语法数据结构算法组成的代码来告诉计算机如何执行任务的过程 &#xff0c; 实现一个…

eclipse手动添加SVN插件

https://www.cnblogs.com/hcl1991/p/5888461.html 1.手动下载svn插件&#xff08;百度SVNsite-1.8.18&#xff09; 2.将下载好的SVNsite-1.8.18.zip 解压 3.在eclipse安装目录的plugins新建SVN文件夹 4.将SVNsite-1.8.18解压包下的features和plugins拷贝到新建的SVN文件夹下 5.…

440. 字典序的第K小数字

440. 字典序的第K小数字 给定整数 n 和 k&#xff0c;找到 1 到 n 中字典序第 k 小的数字。 注意&#xff1a;1 ≤ k ≤ n ≤ 109。 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]&#xff0c;所以第二小的数字是…

微信小程序 设置背景占满整个页面

微信小程序,默认的根节点是<page></page>&#xff0c;所有内容都包裹在这个标签里&#xff0c;如何让页面的背景占满整个屏幕&#xff1f;&#xff1f; <page><view class"bg">....</view> </page> .bg {background-image:ur…

udemy下载课程无法播放_最好的Udemy Web开发课程+热门免费课程

udemy下载课程无法播放Heres a list of some of the most popular web development courses on Udemy:以下是Udemy上一些最受欢迎的Web开发课程的列表&#xff1a; Best General Web Development Courses on Udemy:关于Udemy的最佳常规Web开发课程&#xff1a; The Complete …

渗透测试初学者_渗透测试许可证:面向初学者的道德黑客课程

渗透测试初学者A penetration test is an authorized cyberattack on a computer system, performed to evaluate the security of the system. 渗透测试是对计算机系统的授权网络攻击&#xff0c;旨在评估系统的安全性。 Weve released a full pentesting course on the free…

Codeforces 915 E Physical Education Lessons

题目描述 This year Alex has finished school, and now he is a first-year student of Berland State University. For him it was a total surprise that even though he studies programming, he still has to attend physical education lessons. The end of the term is …

JDK 11 还有一个处于计划阶段的 JEP:让其支持 TLS 1.3

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; >>> JDK 11 最近有什么消息&#xff1f;我们不妨来看一下它的进展情况&#xff0c;包括最新的 JEP 提案。Java 的新版本发布计划意味着总会有一款新的 JDK 即将推出。根据他们的计划&a…

498. 对角线遍历

498. 对角线遍历 给定一个含有 M x N 个元素的矩阵&#xff08;M 行&#xff0c;N 列&#xff09;&#xff0c;请以对角线遍历的顺序返回这个矩阵中的所有元素&#xff0c;对角线遍历如下图所示。 示例: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,4,7,5…

软件测试测试用例编写_不要先编写所有软件测试-只需编写一个

软件测试测试用例编写Test Driven Development (TDD) is sometimes described as “writing tests first”. The TDD mantra states that we should not write code before we have written automated tests that exercise that code. Writing code first is considered subopt…

练习五

1.团队模式和团队的开发模式有什么关系&#xff1f; 答&#xff1a; 首先我来解释一下这两个名词&#xff1a; 我查资料了解了一下&#xff0c;团队模式&#xff0c;更偏向于多人合作的那种&#xff0c;而且我理解的“团队”会是一种多人合作的情况下&#xff0c;长期磨合后的一…

Squid 访问控制配置

Squid 访问控制配置 主配置文件内加入限制参数 vim /etc/squid/squid.conf # 访问控制 acl http proto HTTP # 限制访问 good_domain添加两个域名“.”表示半解析(相当于*) acl good_domain dstdomain .kevin.net .baidu.com # 允许good_domain内的域名访问 http_access allow …

剑指 Offer 62. 圆圈中最后剩下的数字

0,1,,n-1这n个数字排成一个圆圈&#xff0c;从数字0开始&#xff0c;每次从这个圆圈里删除第m个数字&#xff08;删除后从下一个数字开始计数&#xff09;。求出这个圆圈里剩下的最后一个数字。 例如&#xff0c;0、1、2、3、4这5个数字组成一个圆圈&#xff0c;从数字0开始每…

rust 编程入门_面向初学者的Rust –最受欢迎的编程语言入门

rust 编程入门Rust has been voted Stack Overflow’s most loved programming language for five years in a row. This article will tell you why Rust is awesome.Rust已连续五年被评为Stack Overflow最受欢迎的编程语言。 本文将告诉您为什么Rust很棒。 Rust is a system…

【转载】springboot:如何优雅的使用mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是mybatis&#xff0c;虽然个人比较喜欢jpa这种极简的模式&#xff0c;但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和mybatis组合的相关资料&#xff0c;各种各样的形式都有&#xff0c;…