【C语言Coding】第十七天
原创
©著作权归作者所有:来自51CTO博客作者小样小响的原创作品,请联系作者获取转载授权,否则将追究法律责任
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;
}
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;
}
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;
}
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];
}
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;
}