leetcode 908. Smallest Range I 最小差值 I-耗时100
2026/4/21 1:58:13 网站建设 项目流程

Problem: 908. Smallest Range I 最小差值 I

耗时100%,只需要考虑最大值和最小值,题目的example2是误导,其实1+2=3,6-3=3,只要满足mi+k > mx -k 一定存在[-k, k]中的某个数字s1,s2使得 mi + s1 == mx + s2,否则只需要让最小值变大,最大值变小即可,求它们的差值,中间的数字一定符合条件

Code

class Solution { public: int smallestRangeI(vector<int>& nums, int k) { int mi = INT_MAX, mx = INT_MIN, n = nums.size(); for( int i = 0; i < n; i++ ) { mi = min(nums[i], mi); mx = max(nums[i], mx); } if(mi + k > mx - k) return 0; return (mx - k - mi - k); } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询