# Leetcode 2567. Minimum Score by Changing Two Elements ###### tags: `leetcode` `殘酷 daily` [題目連結](https://xxxx/) # Method sort :::info :bulb: **作法講解**: we can change at most two values, so **the low score always is 0**, our goal is to find the minimum possible high score, we know the high score is **maximum value** minus **minimum value**. so we can sort **"nums"**. if sorted "nums" like this, **[A0 A1 A2 A3 A4 A5 A6 A7]** > if **`A0`** and **`A7`** exists, > when we deleted **`A1` ~ `A6`**, > the high score always is **`A7` - `A0`**, so we need to remove smallest value or highest value. we have three case. 1. **remove the two highest values** [A0 A1 A2 A3 A4 A5 ~~A6 A7~~] 2. **remove the one highest and one lowest values.** [~~A0~~ A1 A2 A3 A4 A5 A6 ~~A7~~] 3. **remove the two smallest values** [~~A0 A1~~ A2 A3 A4 A5 A6 A7] we can find the minimum possible high score from above three cases. ::: TC: O(NlogN) SC: O(1) 完整程式碼 ```cpp= class Solution { public: int minimizeSum(vector<int>& nums) { int n = nums.size(); int output = INT32_MAX; sort(nums.begin(), nums.end()); output = min(output, nums[n-3] - nums[0]); output = min(output, nums[n-2] - nums[1]); output = min(output, nums[n-1] - nums[2]); return output; } }; ```