LeetCode 1802. 有界数组中指定下标处的最大值(思维题)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你三个正整数 n、index 和 maxSum 。
你需要构造一个同时满足下述所有条件的数组 nums(下标 从 0 开始 计数):

  • nums.length == n
  • nums[i] 是 正整数 ,其中 0 <= i < n
  • abs(nums[i] - nums[i+1]) <= 1 ,其中 0 <= i < n-1
  • nums 中所有元素之和不超过 maxSum
  • nums[index] 的值被 最大化

返回你所构造的数组中的 nums[index] 。

注意:abs(x) 等于 x 的前提是 x >= 0 ;否则,abs(x) 等于 -x 。

示例 1:
输入:n = 4, index = 2,  maxSum = 6
输出:2
解释:数组 [1,1,2,1][1,2,2,1] 满足所有条件。
不存在其他在指定下标处具有更大值的有效数组。示例 2:
输入:n = 6, index = 1,  maxSum = 10
输出:3提示:
1 <= n <= maxSum <= 10^9
0 <= index < n

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

2. 解题

  • 首先全部为1,idx处为2,然后提拉idx处,慢慢向两侧扩展,每次扩展区域需要全部+1
class Solution {
public:int maxValue(int n, int index, int maxSum) {if(n==1) return maxSum;//特殊情况if(n == maxSum)return 1;int v = 2;//其余的为1,idx处为2int s = n+1;int n1 = index, n2 = n-index-1;//左右两边的长度(不含idx处)int len1 = 0, len2 = 0;//实际需要被拉起来的区间长度while(s < maxSum){len1 += (len1 < n1 ? 1 : 0);len2 += (len2 < n2 ? 1 : 0);v++;//idx处的数s += 1 + len1 +len2;//每个数+1if(len1+len2 == n-1)//全部需要被拉起break;}if(s > maxSum)return v-1;int t = (maxSum - s)/n;//还可以每个数增加多少return v+t;}
};

12 ms 5.8 MB C++


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

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

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

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

相关文章

Linux单用户能做什么,Linux单用户模式详解 及应用场景

一、单用户模式简介二、进入单用户模式修改密码1、Centos6进入单用户修改密码1、重启系统&#xff0c;进入系统欢迎界面按上下左右键进入GRUB界面&#xff1b;2、在GRUB界面选择内核版本&#xff0c;按下e键&#xff1b;3、在此界面可以进行编辑&#xff0c;在最后输入single再…

要开始做笔记总结

今天开始写博客恩!很多知识点需要总结归纳,细细梳理! 好吧,把该掌握的知识总结!转载于:https://www.cnblogs.com/navychang/p/4215663.html

简单阻容降压电路图_升压降压芯片电路

升压与降压一般是指电源电路的工作模式&#xff0c;有些电源IC可以同时支持升压和降压模式。降压模式——Bust mode&#xff0c;这个大家比较熟悉的&#xff0c;用的也比较多&#xff0c;比如5V-》3.3V稳压&#xff0c;对应的芯片很多大家上网搜一下就有了&#xff0c;有LDO模式…

python po设计模式_Python Selenium设计模式 - PO设计模式

整理一下python selenium自动化测试实践中使用较多的po设计模式。为什么要用PO基于python selenium2开始开始ui自动化测试脚本的编写不是多么艰巨的任务。只需要定位到元素&#xff0c;执行对应元素的操作即可。下面我们看一下这个简单的脚本实现百度搜索。从上述代码来看&…

LeetCode 编辑距离 II(DP)

1. 题目 给你两个单词 s 和 t&#xff0c;请你计算出将 s 转换成 t 所使用的最少操作数。 你可以对一个单词进行如下两种操作&#xff1a; 删除一个字符替换一个字符 注意&#xff1a; 不允许插入操作 题目保证有解 示例&#xff1a; 输入&#xff1a;s "abcdefg&qu…

linux终端分辨率对应表,Linux下设置终端分辨率,最全的VGA代码和分辨率对照表...

一般安装完linux后默认的kernel给的tty分辨率是非常有限的,解决的方法就是给kernel传递VGA参数。对应的要修改的配置文件为 /etc/grub.conf,(或者 /boot/grub/grub.conf)就是在grub.conf启动列表的kernel最后添加vga参数 vgaxxxx, 这个在网上大家列出的解决方案都是大同小异&…

android文件存储位置切换

最近有个需求&#xff0c;助手的google卫星地图和OpenCycleMap下载的离线地图数据&#xff0c;要能够在内置存储和外置存储空间之间切换&#xff0c;因为离线瓦片数据非常大&#xff0c;很多户外用户希望将这些文件存储在外置TF卡上&#xff0c;不占用内置存储空间&#xff0c;…

[c]扫雷

题目描述 扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷&#xff08;称之为地雷格&#xff09;&#xff0c;其他格子不含地雷&#xff08;称之为非地雷格&#xff09;。 玩家翻开一个非地雷格时&#xff0c;该格将会出现一个数字——提示周围格子中…

树莓派python gpio 模仿iic_Adafruit的树莓派教程:GPIO配置

概览树莓派最令人兴奋的特点之一是它有一个GPIO连接器可以用来接其他的硬件设备。GPIO连接器实际上是由许多不同类型的接口组成的&#xff1a;真正的GPIO(General Purpose Input Output,通用输入/输出)针脚&#xff0c;你可以用来控制LED灯的开和关。I2C(Inter&#xff0d;Inte…

netcore docker_让.NetCore程序跑在任何有docker的地方

一.分别在Windows/Mac/Centos上安装DockerWindows上下载地址&#xff1a;https://docs.docker.com/docker-for-windows/install/&#xff08;window上安装的常见问题和解决方案请参考下方步骤六&#xff09;Mac上下载地址&#xff1a;https://hub.docker.com/editions/communit…

MapReduce 编程实践

文章目录1. MapReduce 作业流程2. 实践2.1 启动 hadoop2.2 创建 java 项目2.3 MapReduce shell2.4 MapReduce Web UI3. MapReduce 编程实践&#xff1a;统计对象中的某些属性参考书&#xff1a;《Hadoop大数据原理与应用》1. MapReduce 作业流程 2. 实践 2.1 启动 hadoop sta…

linux c代码出现段错误,Linux下段错误(C语言)

问题描述&#xff1a;在Linux下编程有时会出现段错误的提醒&#xff0c;出现这种错误有可能是因为以下几种原因1.数组越界&#xff1a;如果在初始化或者接收输入时内容超过了定义好的数组元素个数时会出现段错误&#xff0c;Linux的数组越界检查做的不是很好&#xff0c;在编译…

micropython webrepl_4-5 MicroPython WebREPL 命令行交互环境设置-2 接入点模式

在这一节教程里我们将一起学习如何为NodeMCU在接入点模式下设置MicroPython网络命令行交互环境(以下简称: WebREPL)。所谓接入点模式就是NodeMCU可以建立WIFI网络供其他设备接入。如下图所示。ESP8266-NodeMCU接入点(Access Point)工作模式在开始设置WebREPL以前请确认您已经完…

基于XMPP实现的Openfire的配置安装+Android客户端的实现

http://blog.csdn.net/sky_monkey/article/details/9495571转载于:https://www.cnblogs.com/eustoma/p/4217028.html

lammps软件_Lammps模型构建的方法之一:组合模型构建

对于Lammps初学者&#xff0c;建模的方法主要有以下几种&#xff1a;1、在Lammps中自行建模&#xff0c;适合金属等简单的模型&#xff0c;如果遇到聚合物就比较麻烦了&#xff1b;2、通过第三方软件建模&#xff0c;例如&#xff1a;Matlab、Python、VMD、Material Studio(MS)…

MapReduce 编程实践:统计对象中的某些属性

文章目录1. 生成数据2. 编写实体类3. Mapper类4. Reducer类5. Driver类6. 运行参考书&#xff1a;《Hadoop大数据原理与应用》 相关文章&#xff1a;MapReduce 编程实践 1. 生成数据 超市消费者 数据&#xff1a; id&#xff0c; 时间&#xff0c;消费金额&#xff0c;会员/…

linux共享数据,使用Linux共享数据对象

Linux共享数据对象类似于windows中的动态链接库&#xff0c;其后缀通常为so.* (*为版本号)&#xff0c;例如为我们所熟知的libpcap&#xff0c;它对应的文件为/usr/lib/libpcap.so。如果程序中使用了某共享数据对象文件&#xff0c;需要在链接时指定gcc的链接参数。如使用libpc…

pythonselenium提高爬虫效率_[编程经验] Python中使用selenium进行动态爬虫

Hello&#xff0c;大家好&#xff01;停更了这么久&#xff0c;中间发生了很多事情&#xff0c;我的心情也发生了很大的变化&#xff0c;看着每天在增长的粉丝&#xff0c;实在不想就这么放弃了&#xff0c;所以以后我会尽量保持在一周一篇的进度&#xff0c;与大家分享我的学习…

超级签名源码_企业签名和超级签名有哪些区别?

我们知道iOS系统对于非App Store中的应用是有安装限制的&#xff0c;而App Store严格的审核机制又将许多APP拒之门外&#xff0c;这令不少开发者们郁闷不已。所以很多开发者们会选择苹果签名的方式&#xff0c;让自己的iOS APP可以不经过App Store就安装在用户的苹果手机上&…

2015-01-14

1.鞋子到了 2.网络一天没有好 3. 又吸烟了,难受 4. 单双杠&#xff1a;60 5. 洗澡&#xff1a;no 6. 仰卧起坐&#xff1a;100 7. 洗脚/刷牙 8.曾的车 9.老梁关世界 总结&#xff1a;今天还好吧&#xff0c;但我还是很想znn&#xff01;&#xff01; 转载于:https://www.cnblo…