【例题1】665. 非递减数列 - 力扣(LeetCode)

bool checkPossibility(int* nums, int numsSize){
    if(numsSize == 1) return true;
    int count = 1;
    if(nums[0]>nums[1]) {
        nums[0] = nums[1];count--;
    }
    for(int i=1;i<numsSize-1 && count;i++){
        if(nums[i]>nums[i+1]) {
            if(nums[i-1]>nums[i+1]) nums[i+1] = nums[i];
            if(nums[i-1]<=nums[i+1]) nums[i] = nums[i+1];
            break;
        }
    }
    for(int i=0;i<numsSize-1;i++){
        if(nums[i]>nums[i+1]) {
            return false;
        }
    }
    return true;
}

【例题2】154. 寻找旋转排序数组中的最小值 II - 力扣(LeetCode)

int findMin(int* nums, int numsSize){
    if(numsSize == 1) return nums[0];
    int min = nums[0];
    for(int i=0;i<numsSize-1;i++){
        if(nums[i] > nums[i+1]) 
        min = min < nums[i+1]?min:nums[i+1];
    }
    return min;
}

【例题3】LCR 128. 库存管理 I - 力扣(LeetCode)

int min(int a,int b){
    return a<b?a:b;
}
int stockManagement(int* stock, int stockSize) {
    int m = stock[0];
    for(int i=0;i<stockSize;i++){
        if(m >= stock[i]) m=min(m,stock[i]);
    }
    return m;
}

【例题4】414. 第三大的数 - 力扣(LeetCode)

int cmp(const void* p1,const void* p2){
    return *(int*) p1 < *(int*)p2; // 降序
}
int thirdMax(int* nums, int numsSize){
    qsort(nums,numsSize,sizeof(int),cmp);
    int count = 0,i;
    for(i=1;i<numsSize;i++){
        if(nums[i] != nums[i-1] && ++count == 2) return nums[i];
  
    }
    return nums[0];
}

【例题5】2656. K 个元素的最大和 - 力扣(LeetCode)

int maximizeSum(int* nums, int numsSize, int k){
    int max = nums[0];
    for(int i=0;i<numsSize;i++){
        max = max>nums[i] ?max:nums[i];
    }
    int sum = 0;
    for(int i=0;i<k;i++){
        sum += max + i;
    }
    return sum;
}