2769.找出最大的可达成数字
【LetMeFly】2769.找出最大的可达成数字:数学——一个猪脑可以不过载的题
力扣题目链接:https://leetcode.cn/problems/find-the-maximum-achievable-number/
给你两个整数 num
和 t
。
如果整数 x
可以在执行下述操作不超过 t
次的情况下变为与 num
相等,则称其为 可达成数字 :
- 每次操作将
x
的值增加或减少1
,同时可以选择将num
的值增加或减少1
。
返回所有可达成数字中的最大值。可以证明至少存在一个可达成数字。
示例 1:
输入:num = 4, t = 1 输出:6 解释:最大可达成数字是 x = 6 ,执行下述操作可以使其等于 num : - x 减少 1 ,同时 num 增加 1 。此时,x = 5 且 num = 5 。 可以证明不存在大于 6 的可达成数字。
示例 2:
输入:num = 3, t = 2 输出:7 解释:最大的可达成数字是 x = 7 ,执行下述操作可以使其等于 num : - x 减少 1 ,同时 num 增加 1 。此时,x = 6 且 num = 4 。 - x 减少 1 ,同时 num 增加 1 。此时,x = 5 且 num = 5 。 可以证明不存在大于 7 的可达成数字。
提示:
1 <= num, t <= 50
解题方法:数学
记目标为$target$,$target$想要尽可能地大,但经过最多$t$次“操作”后还要和$num$相等。
那当然是每次操作$target-1$,$num+1$,经过$t$次操作后$num==target$,这样的话$target$的原始值最大。
最大为多大呢?最大为$target=num+t\times2$。
- 时间复杂度$O(1)$
- 空间复杂度$O(1)$
AC代码
C++
1 |
|
Python
1 |
|
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/139101760
2769.找出最大的可达成数字
https://blog.letmefly.xyz/2024/05/21/LeetCode 2769.找出最大的可达成数字/