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