精華區beta Marginalman 關於我們 聯絡資訊
※ 引述《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
oin1104: 寶 我好害怕 救我 07/03 11:51
sustainer123: 寶 只要乖乖吃藥 愛滋就不會發作 07/03 11:52
JIWP: 別卷了 07/03 11:54
DJYOMIYAHINA: 你的code都好短 大濕 07/03 12:20