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

文章目录

    • 1. 题目
    • 2. 解题

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] = 0nums[1] = 1nums[(1 * 2) = 2] = nums[1] = 1nums[(1 * 2) + 1 = 3] = nums[1] + nums[2] = 1 + 1 = 2nums[(2 * 2) = 4] = nums[2] = 1nums[(2 * 2) + 1 = 5] = nums[2] + nums[3] = 1 + 2 = 3nums[(3 * 2) = 6] = nums[3] = 2nums[(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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/get-maximum-in-generated-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {
public:int getMaximumGenerated(int n) {if(n <= 1) return n;vector<int> arr(n+1);arr[0] = 0;arr[1] = 1;int ans = 0;for(int i = 1; i <= n; i++){if(2*i >= 2 && 2*i <= n){arr[2*i] = arr[i];ans = max(ans, max(arr[i], arr[2*i]));}if(2*i+1 >= 2 && 2*i+1 <= n){arr[2*i+1] = arr[i]+arr[i+1];ans = max(ans, max(arr[i], arr[2*i+1]));}elsebreak;}return ans;}
};

0 ms 6.7 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

【CentOS 6.5】QtCreator启动时关于dbus-1的错误解决方法

关于上篇文章留下的启动QtCreator提示:dbus_connection_can_send_type的错误,解决办法: 更新dbus版本来解决.. 首先去 http://dbus.freedesktop.org/releases/dbus/ 下载dbus的最新版本... 解压后,进入 文件夹:dbus-1.8.0运行如下命令: ./configure --prefix/usrmakesudo make …

TotoiseSVN的基本使用方法

一、签入源代码到SVN服务器 假如我们使用Visual Studio在文件夹StartKit中创建了一个项目&#xff0c;我们要把这个项目的源代码签入到SVN Server上的代码库中里&#xff0c;首先右键点击StartKit文件夹&#xff0c;这时候的右键菜单如下图所示&#xff1a; 图2-2-1 点击Import…

Flink的ProcessFunction API

1 ProcessFunction ProcessFunction是一个低阶的流处理操作&#xff0c;可以访问事件(event)(流元素)&#xff0c;状态(state)(容错性&#xff0c;一致性&#xff0c;仅在keyed stream中)&#xff0c;定时器(timers)(event time和processing time&#xff0c; 仅在keyed stream…

LeetCode 1647. 字符频次唯一的最小删除次数(贪心)

文章目录1. 题目2. 解题1. 题目 如果字符串 s 中 不存在 两个不同字符 频次 相同的情况&#xff0c;就称 s 是 优质字符串 。 给你一个字符串 s&#xff0c;返回使 s 成为 优质字符串 需要删除的 最小 字符数。 字符串中字符的 频次 是该字符在字符串中的出现次数。 例如&am…

分享Db4o的便捷封装类源码

导言 大家好&#xff0c;话说真是好久好久没写文章了&#xff0c;哈哈。 最近在写网站&#xff0c;个人对传统数据库天然抵触&#xff0c;感觉非常繁冗&#xff0c;即便是Entity Framework也过于庞杂了&#xff0c;Db4o这种轻量级且读写、配置都极其方便的新型数据库非常适合我…

Flink中的状态管理

1 Flink中的状态 当数据流中的许多操作只查看一个每次事件(如事件解析器)&#xff0c;一些操作会跨多个事件的信息(如窗口操作)。这些操作称为有状态。状态由一个任务维护&#xff0c;并且用来计算某个结果的所有数据&#xff0c;都属于这个任务的状态。可以简单的任务状态就是…

Python之日志处理(logging模块)

主要内容 日志相关概念logging模块简介使用logging提供的模块级别的函数记录日志logging模块日志流处理流程使用logging四大组件记录日志配置logging的几种方式向日志输出中添加上下文信息参考文档 一、日志相关概念 日志是一种可以追踪某些软件运行时所发生事件的方法。软件开…

LeetCode 514. 自由之路(记忆化递归 / DP)

文章目录1. 题目2. 解题1. 题目 电子游戏“辐射4”中&#xff0c;任务“通向自由”要求玩家到达名为“Freedom Trail Ring”的金属表盘&#xff0c;并使用表盘拼写特定关键词才能开门。 给定一个字符串 ring&#xff0c;表示刻在外环上的编码&#xff1b;给定另一个字符串 ke…

thinkpad s3 安装win8 kali双系统笔记

前段时间入手了一台thinkpad s3(i7,8G),预装了win8系统,windows下写代码,环境配置比较麻烦,就想安装kali linux做双系统,官方参考文档:http://docs.kali.org/installation/dual-boot-kali-with-windows但s3预装了64bit win8,采用的是UEFI启动,官方文档并不完全适用,所以折腾了一…

Flink中的容错机制

1 checkpoint Flink 故障恢复机制的核心&#xff0c;就是应用状态的一致性检查点checkpoint。 在Spark Streaming中仅仅是针对driver的故障恢复做了数据和元数据的Checkpoint&#xff0c;处理的是当前时间点所有分区当前数据的状态。在Flink中不能把当前所有分区的数据直接存下…

os、os.path、shutil操作文件和文件路径的常用方法总结

os模块是python标准库中的一个用于访问操作系统功能的模块&#xff0c;下面简要介绍一下常用的命令 1、os.name(). 判断现在正在使用的平台&#xff0c;windows返回’nt’&#xff0c;Linux返回‘posix’ 2、os.getcwd() 得到当前工作的目录 3、os.listdir(). 指定所在目…

LeetCode 698. 划分为k个相等的子集(回溯)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 nums 和一个正整数 k&#xff0c;找出是否有可能把这个数组分成 k 个非空子集&#xff0c;其总和都相等。 示例 1&#xff1a; 输入&#xff1a; nums [4, 3, 2, 3, 5, 2, 1], k 4 输出&#xff1a; True 说明&#xff1a;…

Linux网络服务器epoll模型的socket通讯的实现(一)

准备写一个网络游戏的服务器的通讯模块&#xff0c;参考网上看到的一些代码&#xff0c;在linux下面实现一个多线程的epoll模型的socket通讯的代码,以下是第一部分多线程的切换代码: 1 #include <stdio.h>2 #include <sys/types.h>3 #include <sys/epoll.h>…

MySQL中的表中增加删除字段

1增加两个字段&#xff1a; mysql> create table id_name(id int,name varchar(20)); Query OK, 0 rows affected (0.13 sec)mysql> alter table id_name add age int,add address varchar(11); Query OK, 0 rows affected (0.13 sec) Records: 0 Duplicates: 0 Warnin…

Ubuntu编写开机自启动脚本(转载)

From:http://blog.csdn.net/marujunyy/article/details/8466255 1、首先编写一个简单的shell脚本test.sh #! /bin/bash echo "Hello world!" filenamedate"%Y%m%d" echo $filename 2、设置脚本开机自启动 方法一&#xff1a; 编辑/etc/init.d/rc.local文件…

Ubuntu下svn 版本管理客户端工具及常用方法

Ubuntu16.04系统下安装RapidSVN版本控制器及配置diff,editor,merge和exploer工具&#xff0c;在Window下我们使用TortoiseSVN(小乌龟)&#xff0c;可以很方便地进行查看、比较、更新、提交、回滚等SVN版本控制操作。 在Linux下我们可以使用RapidSVN。RapidSVN是一款轻量级的免费…

Flink的Table API 与SQL介绍及调用

1 概述 DataSetAPI和DateStreamAPI是基于整个Flink的运行时环境做操作处理的&#xff0c;Table API和SQL是在DateStreamAPI上又包了一层。对于新版本的Blink在DateStream基础上又包了一层实现了批流统一&#xff0c;上层执行环境都是基于流处理&#xff0c;做批流统一的查询。T…

Python编程中一些异常处理的小技巧

编程中经常会需要使用到异常处理的情况&#xff0c;在阅读了一些资料后&#xff0c;整理了关于异常处理的一些小技巧记录如下。 1 如何自定义异常 1.1 定义异常类 在实际编程中&#xff0c;有时会发现Python提供的内建异常的不够用&#xff0c;我们需要在特殊业务场景下的异常…

Flink的Table API 与SQL的流处理

1 流处理与SQL的区别 Table API和SQL&#xff0c;本质上还是基于关系型表的操作方式&#xff1b;而关系型表、SQL本身&#xff0c;一般是有界的&#xff0c;更适合批处理的场景。所以在流处理的过程中&#xff0c;有一些特殊概念。 SQL流处理处理对象字段元组的有界集合字段元…

LeetCode 833. 字符串中的查找与替换(排序,replace)

文章目录1. 题目2. 解题1. 题目 某个字符串 S 需要执行一些替换操作&#xff0c;用新的字母组替换原有的字母组&#xff08;不一定大小相同&#xff09;。 每个替换操作具有 3 个参数&#xff1a;起始索引 i&#xff0c;源字 x 和目标字 y。 规则是&#xff1a;如果 x 从原始…