【C语言刷力扣】910.最小差值 ||

题目:

解题思路;

由于需要对数组中的每一个进行 +k-k 的操作,这时要求最小差值,即对较大的数 -k 对较小的数 + k

需要先对数组进行排序,再枚举对元素的操作。

  • nums [0]nums[i - 1] 的数进行 +k
  • nums [i]nums[numsSize - 1] 的数进行 - k

此时最大数是 nums[i - 1] 或者 nums[numsSize - 1]

最小数是 nums[0] 或者 nums [i]

时间复杂度:

空间复杂度:

复制代码
#define MAX(a,b) (a > b) ? a : b;
#define MIN(a,b) (a < b) ? a : b;

int cmp(const void* a, const void* b) {
    return *(int*)a - *(int*)b;
} 

int smallestRangeII(int* nums, int numsSize, int k) {
    qsort(nums, numsSize, sizeof(int), cmp);
    int max, min;
    int ans = nums[numsSize - 1] - nums[0];
    for (int i = 1; i < numsSize; i++) {
        max = MAX(nums[i-1] + k, nums[numsSize-1] - k);
        min = MIN(nums[0] + k, nums[i] - k);
        ans = MIN(ans, max - min);
    }
    return ans;
}
相关推荐
励志的小陈43 分钟前
贪吃蛇(C语言实现,API)
c语言·开发语言
知识浅谈1 小时前
DeepSeek V4 和 GPT-5.5 在同一天发布了??我也很懵,但对比完我悟了
算法
DeepModel2 小时前
通俗易懂讲透 Q-Learning:从零学会强化学习核心算法
人工智能·学习·算法·机器学习
田梓燊2 小时前
力扣:19.删除链表的倒数第 N 个结点
算法·leetcode·链表
简简单单做算法3 小时前
基于GA遗传优化双BP神经网络的时间序列预测算法matlab仿真
神经网络·算法·matlab·时间序列预测·双bp神经网络
guygg884 小时前
利用遗传算法解决列车优化运行问题的MATLAB实现
开发语言·算法·matlab
武藤一雄4 小时前
19个核心算法(C#版)
数据结构·windows·算法·c#·排序算法·.net·.netcore
sali-tec4 小时前
C# 基于OpenCv的视觉工作流-章52-交点查找
图像处理·人工智能·opencv·算法·计算机视觉
爱编码的小八嘎5 小时前
C语言完美演绎8-15
c语言
yu85939585 小时前
MATLAB连续线性化模型预测控制(SL-MPC)
算法·机器学习·matlab