Re: [閒聊] 每日leetcode已回收

看板Marginalman作者 (caster )時間1年前 (2024/07/03 11:51), 編輯推噓1(103)
留言4則, 4人參與, 1年前最新討論串439/1548 (看更多)
※ 引述《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:])) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.160.111 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1719978662.A.076.html

07/03 11:51, 1年前 , 1F
寶 我好害怕 救我
07/03 11:51, 1F

07/03 11:52, 1年前 , 2F
寶 只要乖乖吃藥 愛滋就不會發作
07/03 11:52, 2F

07/03 11:54, 1年前 , 3F
別卷了
07/03 11:54, 3F

07/03 12:20, 1年前 , 4F
你的code都好短 大濕
07/03 12:20, 4F
文章代碼(AID): #1cXCgc1s (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cXCgc1s (Marginalman)