欢迎光临散文网 会员登陆 & 注册

LeetCode 2567. Minimum Score by Changing Two Elements

2023-04-19 14:28 作者:您是打尖儿还是住店呢  | 我要投稿

You are given a 0-indexed integer array nums.

  • The low score of nums is the minimum value of |nums[i] - nums[j]| over all 0 <= i < j < nums.length.

  • The high score of nums is the maximum value of |nums[i] - nums[j]| over all 0 <= i < j < nums.length.

  • The score of nums is the sum of the high and low scores of nums.

To minimize the score of nums, we can change the value of at most two elements of nums.

Return the minimum possible score after changing the value of at most two elements of nums.

Note that |x| denotes the absolute value of x.

 

Example 1:

Input: nums = [1,4,3]

Output: 0

Explanation: 

Change value of nums[1] and nums[2] to 1 so that nums becomes [1,1,1]. 

Now, the value of |nums[i] - nums[j]| is always equal to 0, so we return 0 + 0 = 0.

Example 2:

Input: nums = [1,4,7,8,5]

Output: 3

Explanation: 

Change nums[0] and nums[1] to be 6. Now nums becomes [6,6,7,8,5]. 

Our low score is achieved when i = 0 and j = 1, 

in which case |nums[i] - nums[j]| = |6 - 6| = 0. 

Our high score is achieved when i = 3 and j = 4, 

in which case |nums[i] - nums[j]| = |8 - 5| = 3. 

The sum of our high and low score is 3, which we can prove to be minimal.

 

Constraints:

  • 3 <= nums.length <= 105

  • 1 <= nums[i] <= 109

只要更改数字了,那么low数字永远就是0,剩下的就是看最大值了,

要么改变2个大的,

要么改变2个小的,

要么改变1大1小。

这三种情况,求对应的最小值即可。

sort一下就好了。所以代码就很短了。


Runtime: 17 ms, faster than 72.85% of Java online submissions for Minimum Score by Changing Two Elements.

Memory Usage: 56.5 MB, less than 6.59% of Java online submissions for Minimum Score by Changing Two Elements.


LeetCode 2567. Minimum Score by Changing Two Elements的评论 (共 条)

分享到微博请遵守国家法律