工程在哪个网站做推广比较合适,呼伦贝尔网站建设公司,网站开发技术包括什么,wordpress 2.5.2下载一、题目 二、函数原型
int smallestRangeI(int* nums, int numsSize, int k)
三、思路
本题题目有些绕口#xff0c;但是无伤大雅。本质就是可以对数组中的每个元素进行加/减 k 的操作#xff0c;然后求数组中的最大、最小元素的最小差值。
分为几种情况#xff1a;
…一、题目 二、函数原型
int smallestRangeI(int* nums, int numsSize, int k)
三、思路
本题题目有些绕口但是无伤大雅。本质就是可以对数组中的每个元素进行加/减 k 的操作然后求数组中的最大、最小元素的最小差值。
分为几种情况
1.原数组中最大值和最小值的差值一半 小于等于 k说明最大、最小元素可以通过加/减 k 的操作后相等那么最大、最小元素的最小差值就是0
2.原数组中最大值和最小值的差值一半 大于 k明最大、最小元素不可以通过加/减 k 的操作相等那么最大、最小元素的最小差值就是 max - k - (min k)
四、代码
int cmp(const void* e1,const void* e2)
{return *(int*)e1-*(int*)e2;
}int smallestRangeI(int* nums, int numsSize, int k) {qsort(nums,numsSize,sizeof(int),cmp);//排序找到最大最小元素int minnums[0];//最小元素int maxnums[numsSize-1];//最大元素if((float)(max-min)/2(float)k){return 0;}else{return max-k-min-k;}}