Re: [閒聊] 每日leetcode

作者: sustainer123 (caster)   2024-07-03 11:50:59
※ 引述《oin1104 (是oin的說)》之銘言:
: 題目:
: 給你一串陣列
: 你可以對任意三個元素改成任意值
: 改完之後最大跟最小相差的最小值是多少
: 思路:
: 先sort
: 發現改中間的值沒屁用
: 然後就可以只改最大最小的
: 要改成什麼值根本不重要
: 然後要改大的小的哪邊的呢
: 其實 把所有情況列出來 發現只有四種
: 所以直接試試看就可以了
: ```cpp
: class Solution {
: public:
: int minDifference(vector<int>& nums)
: {
: int len = nums.size();
: if(len <= 4)return 0 ;
: sort(nums.begin(),nums.end());
: int l = 0;
: int r = len-1;
: int res = INT_MAX;
: for(int i = 0 ; i < 4 ; i ++)
: {
: res = min(res,nums[r-i] - nums[l+3-i]);
: }
: return res;
: }
: };
: ```
思路:
差不多 其實就四種可能:最大-第四小 第二大-第三小 第三大-第二小 第四大-最小
你能改3個數 所以就選最小的 然後改掉其他三個
Python Code:
class Solution:
def minDifference(self, nums: List[int]) -> int:
if len(nums) <= 4:
return 0
nums.sort()
return min(b - a for a, b in zip(nums[:4], nums[-4:]))
作者: oin1104 (是oin的說)   2024-07-03 11:51:00
寶 我好害怕 救我
作者: sustainer123 (caster)   2024-07-03 11:52:00
寶 只要乖乖吃藥 愛滋就不會發作
作者: JIWP (JIWP)   2024-07-03 11:54:00
別卷了
作者: DJYOMIYAHINA (通通打死)   2024-07-03 12:20:00
你的code都好短 大濕

Links booklink

Contact Us: admin [ a t ] ucptt.com