leetcode2439. 最小化数组中的最大值 贪心or二分答案

基于IMX429-IMX430-IMX432-IMX437系列传感器的SLVS-MIPI桥接方案设计与实现 本文详细介绍了针对索尼IMX429、IMX430、IMX432及IMX437系列传感器的SLVS-MIPI桥接方案设计与实现。针对工业视觉、车载摄像头等应用中主流SoC仅支持MIPI接口的痛点,提出基于FPGA(如Lattice Crosslink-NX)的透传桥接方案,将传感器输出的SLVS信号无损转换为MIPI CSI-2信号,确保数据完整性与低延迟,并探讨了硬件选型、逻辑设计及多传感器兼容性等关键问题。 阅读详情
  • mid : https://leetcode.cn/problems/minimize-maximum-of-array

  • 给你一个下标从 0 开始的数组 nums ,它含有 n 个非负整数。

  • 每一步操作中,你需要:

  • 选择一个满足 1 <= i < n 的整数 i ,且 nums[i] > 0 。
    将 nums[i] 减 1 。
    将 nums[i - 1] 加 1 。
    你可以对数组执行 任意 次上述操作,请你返回可以得到的 nums 数组中 最大值 最小 为多少。

示例 1:

输入:nums = [3,7,1,6]
输出:5
解释:
一串最优操作是:
1. 选择 i = 1 ,nums 变为 [4,6,1,6] 。
2. 选择 i = 3 ,nums 变为 [4,6,2,5] 。
3. 选择 i = 1 ,nums 变为 [5,5,2,5] 。
nums 中最大值为 5 。无法得到比 5 更小的最大值。
所以我们返回 5 。
示例 2:

输入:nums = [10,1]
输出:10
解释:
最优解是不改动 nums ,10 是最大值,所以返回 10 。
 

提示:

n == nums.length
2 <= n <= 105
0 <= nums[i] <= 109

code

二分答案

  • 二分答案是一种常见的解题思路,通常用于求解满足某个条件的最大或最小值。其基本思路是首先确定答案的范围,然后在这个范围内进行二分查找,不断缩小答案的范围,直到找到符合条件的最优解。

  • 具体实现时,可以先定义一个判断函数,用于判断当前答案是否符合条件。然后根据题目要求,确定答案范围,比如可以将答案范围设为 [0, max],其中 max 是题目给定的最大值。接着进行二分查找,每次选择中间值 mid,调用判断函数判断 mid 是否符合条件,如果符合条件,则将答案范围缩小到 [mid+1, max],否则将范围缩小到 [0, mid-1],直到找到最优解为止。

  • 需要注意的是,二分答案适用于 问题的答案处在某个单调的区间内,即答案随着输入的增加或减少而单调递增或递减。比如: C h e c k ( x ) = T r u e , ∀ x ≥ t . 并且 C h e c k ( x ) = F a l s e , ∀ x ≤ t . Check(x)=True,\forall x\geq t. 并且 Check(x)=False,\forall x\leq t. Check(x)=True,∀x≥t.并且Check(x)=False,∀x≤t.(PS:二分答案有些像零知识证明的验证方法)

class Solution {
public:
    static bool check(vector<int> &nums, int k) {//假设最小化数组中的最大值为k
		//下面对k进行验证
        long long have = 0;//前方的数字还可以帮我们后方的大数承载多少数字
        for (int n : nums) {
            if (n <= k) {
                have += k - n;//较小数,可以算入承载量
            } else {
                if (have < n - k) return 0;//承载不了了,该答案不可行
                else have -= (n - k);//减去承载量
            }
        }
        return 1;
    }

    int minimizeArrayValue(vector<int> &nums) {
        int left = 0, right = *max_element(nums.begin(), nums.end());
        while (left < right) {//二分答案,寻找最大值
            int mid = left + (right - left) / 2;
            if (check(nums, mid)) right = mid;
            else left = mid + 1;
        }
        return left;
    }
};

cg

贪心方法

  • 如果数组中只有一个元素,那么最大值为nums[0]。
  • 如果有两个数则为 { 两个数的均值 ( 和除 2 ) , n u m [ 0 ] < n u m s [ 1 ] n u m [ 0 ] , n u m [ 0 ] < n u m s [ 1 ] \left\{\begin{array}{l}两个数的均值(和除2) ,num[0]<nums[1]\\num[0],num[0]<nums[1] \end{array}\right. {两个数的均值(和除2),num[0]<nums[1]num[0],num[0]<nums[1]​.
  • 如果有第三个值,其大于之前计算的值,那么可以进行“补贴”给前边的两个值,最终达到三个数的平均值,否则就是继续上一步计算得到的值。
  • 以此类推直到最后一个数。

转化为代码

class Solution {
public:
    int minimizeArrayValue(vector<int>& nums)
    {
        int dp = nums[0];
        long long sum = nums[0];
        for (int i = 1; i < nums.size(); i++) {
            sum += nums[i];
            int avg = sum / (i + 1) + (bool)(sum % (i + 1));
            if (avg > dp)  dp = avg;
        }
        return dp;
    }
};
上位机 寻边器 通讯实战 寻边器通讯接口实现 本文介绍了上位机与盖泽(Gazer)和JEL品牌寻边器的通讯接口实现方案。主要内容包括: 接口定义:创建了IAlignerOperation接口,定义了获取状态、控制运动、真空吸附等核心功能。 具体实现: 盖泽寻边器(GazerAlignerCjh):通过串口通讯,实现了回零、校准、移动位置等操作 JEL寻边器(JelAligner):同样基于串口通讯,包含错误处理、状态查询等功能 工厂模式:通过AlignerFactory工厂类根据设备品牌创建对应的实现对象。 设备加载:展示了如何在系 阅读详情

相关推荐

从零开始Cubemx配置STM32搭载freeRTOS以及lwip实现tcp网络通信(二)

Cubemx配置LWIP,实现网络通信

qq_30623327的博客 1万+

算法训练——最大化最小值(最小化最大值)

看到「最大化最小值」或者「最小化最大值」就要想到二分答案,这是一个固定的套路。为什么?一般来说,二分的值越大,越能/不能满足要求;二分的值越小,越不能/能满足要求,有单调性,可以二分。

庄小焱 1068

40-基于STM32与LD3320的智能语音调光台灯开发全攻略(代码+硬件+调试心得)

本文详细介绍了基于STM32与LD3320的智能语音调光台灯开发全攻略,包括硬件设计、软件实现和调试心得。项目利用STM32单片机控制LD3320语音识别模块,实现语音控制开关和PWM调光功能,适合非接触式操作场景。文章还分享了硬件选型、PWM调光算法优化及常见问题解决方案,为开发者提供完整参考。

weixin_29163797的博客 325

leetcode 2439. 最小化数组中的最大值

削峰填谷,整体考虑,遇到第i个时,把第i个当成最后一个,把前i-1个都当成一个数字进行处理。计算前i个数字的平均值向上取整,此时相当于把前i个的山峰削减完成,前i个的最大值就是平均值向上取整,然后继续第i+1个。

gcs的博客 1749

深度理解嵌入(embedding)层

首先从one_hot开始: one_hot的优点:计算方便快捷、表达能力强。 one_hot的缺点:过于稀疏,过于占用资源,尤其是在数据量特别大时;数据之间完全独立。

weixin_44441131的博客 5658

HackRF实战:用Portapack扩展板玩转GPS信号模拟(附固件刷写教程)

本文详细介绍了如何使用HackRF与Portapack扩展板进行GPS信号模拟,包括固件刷写、信号生成与发射配置等实战操作。通过专业工具和优化技巧,读者可以掌握软件无线电的高级应用,解决手机定位难题,同时强调安全合规使用的重要性。

weixin_28717431的博客 362

Leetcode题解-算法-贪心算法

最长的链 646. Maximum Length of Pair Chain(Medium) You are given n pairs of numbers. In every pair, the first number is always smaller than the second number. Now, we define a pair (c, d) can follow anoth...

桑凯旋的博客 1150

2023电赛B题实战解析:基于立创天空星开发板的同轴线缆长度与负载测量系统

本文详细解析了2023年全国大学生电子设计竞赛B题的实战方案,重点介绍了基于立创EDA天空星开发板(STM32F103)的同轴线缆长度与负载测量系统。文章深入剖析了两种核心测量方案,并推荐了更稳定易实现的NE555测电容法,提供了从硬件选型、电路设计到软件编程、参数标定的完整“施工图”,实测精度可达厘米级和皮法级,为电赛复现与高精度测量学习提供了清晰指导。

weixin_36303305的博客 232

D.二分查找-二分答案-最小化最大值——2439. 最小化数组中的最大值

A.每日一题——2439. 最小化数组中的最大值解析

要努力去发光,而不是被照亮~ 852

读懂 SAP S/4HANA 里的 SAP Fiori 架构:前端服务器、搜索链路、传统应用接入与内容组织全景解析

摘要:SAP Fiori架构并非简单的系统连接图,而是明确区分界面层与业务数据层的三层分工体系:用户交互层(浏览器与Fiori launchpad)、前端技术层(SAPUI5运行环境)和业务数据层(SAP S/4HANA后端)。这种分离实现了生命周期解耦,前端专注于统一体验治理,后端处理核心业务逻辑。值得注意的是,SAP Fiori front-end server本质仍是ABAP系统,负责UI技术组件运行。虽然SAP S/4HANA推荐嵌入式部署,但独立部署在多系统场景中仍有价值。典型Fiori应用通过O

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 179

Vue - 详细实现低代码平台,支持拖曳式可视化生成应用软件功能,用户通过拖拽元素、搭积木的方式创建应用(适合迭代的基础架构、低代码平台)

Vue低代码平台-拖曳式拖拉拽可视化生成应用软件,拖拽式低代码数据可视化开发平台,vue实现拖拽,拖拽式Vue组件代码生成平台,基于vue的可视化拖拽代码生成工具,Vue实现可拖拽组件的方法,一个低代码平台的前端部分,靠拖拉拽生成页面。Vue技术栈从零实现低代码可视化搭建平台示例,低代码轮子,通过拖拽就可生成Vue代码的平台来了,vue低代码平台开发相关比低代码更强大的零代码开发平台,这款低代码SAAS数据可视化工具,拖拽生成大屏。vue实现拖拽效果,Vue自由拖拽缩放组件,自定义组件(文本、图片

🏆 前端领域优质创作者 1万+

day124—二分查找—最小化数组中的最大值(LeetCode-2439)

摘要:给定一个非负整数数组,通过操作(将元素i减1并使其左侧元素加1)调整数组,目标是使调整后的数组最大值最小化。解决方案采用二分查找:猜测最大值并用贪心算法验证。从右向左遍历数组,将超出限制的值向左传递,最后检查首元素是否满足限制。时间复杂度为O(nlogM),其中M是数组最大值。该方法利用单调性和贪心策略高效找到最优解。

the_dry的博客 416

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1418

力扣2439. 最小化数组中的最大值

力扣2439. 最小化数组中的最大值 二分答案+贪心

2301_80219163的博客 424

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

每周技术面试高频题汇总:大厂面试官到底在考什么?完整实战指南

大家好,又到了每周的面试复盘时间。。现在的面试官更喜欢把你扔进一个具体的“场景”里,看你怎么思考、怎么权衡(Trade-off)。基于过去一周 优快云、掘金、LeetCode 等社区的热议内容,我为大家精选了,涵盖算法、系统设计、数据库和网络四大领域。咱们不整那些虚的,直接上干货,看看这些题目背后的考察点和解题思路。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 482

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

对角占优阵的行列式大于零的证明

M=(abcd)满足:a>∣b∣,d>∣c∣M=\left( \begin{array} { l l } { a } & { b } \\ { c } & { d} \end{array}\right)\\ 满足:a>|b|,d>|c| M=(ac​bd​)满足:a>∣b∣,d>∣c∣ 另M(t)=(ab∗tc∗td)t∈[0,1]f(t):t→det(M(t))f为连续函数,连续映射,f(t)⊂R,故联通(有介质性质),又因为f(t)≠0,f(0)=(a

ResumeProject的博客 5802

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jar包下载网站

方法的第一个参数常常被命名为 self。 这也不过就是一个约定: self 这一名称在 Python 中绝对没有特殊含义。 但是要注意,不遵循此约定会使得你的代码对其他 Python 程序员来说缺乏可读性, 而且也可以想像一个 类浏览器 程序的编写可能会依赖于这样的约定。 方法可以通过使用 self 参数的方法属性调用其他方法: class Bag: def init(self): self.data = [] def add(self, x): self.data.append(x) def..

ResumeProject的博客 4349

RUST笔记:candle使用基础

Result定义在candle-core/src/error.rs 定义了一个 `Result` 类型,这是一个 `Result` 类型的别名。其中 `T` 是成功时的返回类型,而 `Error` 是失败时的错误类型。

ResumeProject的博客 3238

映射同伦等价(一般的+空间偶的)

在数学中,同伦(Homotopy)的概念在拓扑上描述了两个对象间的“连续变化”。 两个拓扑空间如果可以通过一系列连续的形变从一个变到另一个,那么就称这两个拓扑空间同伦。 f,g:X→Y给定的两个拓扑空间X和Y。考虑两个连续函数,若存在一个连续映射H:X×【0,1】→Y使得f,g:X\rightarrow Y给定的两个拓扑空间X和Y。考虑两个连续函数,若存在一个连续映射H:X×【0,1】 \rightarrow Y使得f,g:X→Y给定的两个拓扑空间X和Y。考虑两个连续函数,若存在一个连续映射H:X×【0,.

ResumeProject的博客 3209

Dirichlet Process (徐亦达老师)狄利克雷过程

混合高斯模型(Mixture of Gaussians,简称GMM)是一种概率模型,用于对复杂的数据分布进行建模。它是由多个高斯分布组合而成的混合模型,每个高斯分布(称为组件)对应数据的一个子群体。混合高斯模型的概率密度函数可以表示为多个高斯分布的线性组合,即每个分布乘以一个相应的权重。Pxi1∑K​πi​⋅Nx∣μi​Σi​其中,K是高斯分布的数量,πi​是对应于第 i 个高斯分布的权重,Nx∣μi​Σi​。

ResumeProject的博客 2888

RUST笔记: 动态链接库的创建和使用

【代码】RUST笔记: 动态链接库的创建和使用。

ResumeProject的博客 2804

拓扑学笔记:定义域的性质之紧性暂记(紧集“有界闭集”的性质)

https://www.zhihu.com/question/58904993 我举个关于紧集的形象解释吧:比如在天安门广场上有无穷多个人正在看升旗仪式这时候天空突然下起了大雨,可是人群当中只有有限个人带了雨伞,当他们把手中的雨伞撑开的时候惊奇的发现仅仅有限的几把伞竟然可以为全广场所有的人遮住雨,哈哈原来不必带无穷把伞啊! 对区间进行分割分析后推广到全空间的能力对区间进行分割分析后推广到全空间的能力对区间进行分割分析后推广到全空间的能力 再Rn中等价,也就是说在Rn中用处不大再R^n中等价,也就是说在R^

ResumeProject的博客 2073

基本群性质:同胚不变量,同伦不变量

基本群是(X,x0)到π1(X,x0)的映射设拓扑空间之间有映射f:(X,x0)→(Y,y0)设σ为X中的道路,则f∗σ为Y中的起点终点为y0的闭路基本群是(X,x_0)到\pi_1(X,x_0)的映射\\ 设拓扑空间之间有映射f:(X,x_0)\rightarrow (Y,y_0)\\ 设\sigma 为X中的道路,则f*\sigma 为 Y中的起点终点为y_0的闭路基本群是(X,x0​)到π1​(X,x0​)的映射设拓扑空间之间有映射f:(X,x0​)→(Y,y0​)设σ为X中的道路,则f∗σ为Y中的起

ResumeProject的博客 2054

拓扑学中的欧拉定理笔记(暂记)

欧拉定理:对于凸的多面体,v-e+f=2 凸:连线在内部,多面体:多个平面围城的空间 注:定理较弱,逆定理不成立,反例六面体挖个槽

ResumeProject的博客 1979

拓扑学笔记:拓扑学介绍,闭形式与恰当形式与“定义域”的关系

闭形式 w为 上的 1−形式w为\ 上的\ 1-形式w为 上的 1−形式 恰当形式

ResumeProject的博客 1750

拓扑空间的同伦等价+空间偶同伦等价

空间偶: 拓扑空间X和其子空间A,记为(X,A),是一个空间偶 空间偶之间的映射: 如果一个连续映射f:X→Y还满足f(A)⊂B,即限制在A上时可以认为f:A→B,那么我们也称这是一个空间偶之间的映射,记为f:(X,A)→(Y,B).如果一个连续映射f : X→Y还满足f(A)\subset B,\\ 即限制在A上时可以认为f: A→B,\\那么我们也称这 是一个空间偶之间的映射,记为f :(X,A)→(Y,B) . 如果一个连续映射f:X→Y还满足f(A)⊂B,即限制在A上时可以认为f:A→B,那么我们也

ResumeProject的博客 1649
上一篇: leetcode260. 只出现一次的数字 III
下一篇: leetcode703. 数据流中的第 K 大元素 优先队列(默认最大堆)
FakeOccupational
博客等级 码龄6年 2万+粉丝 1727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值