🔗 🟢 2769. Find the Maximum Achievable Number 1191

tags: Weekly Contest 353 數學(Math)

題意

給定兩個整數 numnumtt

如果一個整數 xx 在經過以下操作不超過 tt 次後可以變成 numnum ,則稱其為 可達成(achievable)數字

  • 每次操作將 xx 的值增加或減少 11 ,同時可以選擇將 numnum 的值增加或減少 11

返回最大的 可達成數字

思路:數學(Math)

numnum 固定的前提下,要使 xx 最大,那麼對 xx 要用 1-1 操作,對 numnum 要用 +1+1 操作。

tt 次操作後 xt=num+tx - t = num + t ,整理得 x=num+2tx = num + 2t ,即為答案。

複雜度分析

  • 時間複雜度:O(1)O(1)
  • 空間複雜度:O(1)O(1)
1
2
3
class Solution:
def theMaximumAchievableX(self, num: int, t: int) -> int:
return num + (t << 1)
1
2
3
4
5
6
class Solution {
public:
int theMaximumAchievableX(int num, int t) {
return num + (t << 1);
}
};

寫在最後

Cover photo is generated by @たろたろ, thanks for their work!