【C语言Coding】第二十六天
原创
©著作权归作者所有:来自51CTO博客作者小样小响的原创作品,请联系作者获取转载授权,否则将追究法律责任
int cmp(const int* p1,const int* p2){
return *p2-*p1;
}
int maxProduct(int* nums, int numsSize){
qsort(nums,numsSize,sizeof(int),cmp);
return (nums[0]-1)*(nums[1]-1);
}
int cmp(const int * p1,const int * p2){
return *p1-*p2;
}
int countElements(int* nums, int numsSize){
if( numsSize == 0 || numsSize == 1 || numsSize == 2) return 0;
qsort(nums,numsSize,sizeof(int),cmp);
int L = 0,R = numsSize - 1;
while(nums[L] == nums[L+1] ){
if(L+1 ==R) return 0;
L++;
}
while(nums[R] == nums[R-1]){
if(R-1 == L) return 0;
R--;
}
return R - L - 1 >= 0 ? R-L-1 : 0 ;
}
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){
int R1 = m-1;
int R2 = n-1;
int len = m+n-1;
while(R1 >= 0 && R2 >= 0){
if(nums1[R1] > nums2[R2]){
nums1[len--] = nums1[R1--];
}else{
nums1[len--] = nums2[R2--];
}
}
while(R1>=0){
nums1[len--] = nums1[R1--];
}
while(R2>=0){
nums1[len--] = nums2[R2--];
}
}
int cmp(int* p1,int* p2){
return *p1-*p2;
}
int findNonMinOrMax(int* nums, int numsSize){
if(numsSize <= 2) return -1;
qsort(nums,numsSize,sizeof(int),cmp);
int L = 0;
int R = numsSize-1;
while(nums[L]==nums[L+1] && L+1 != R) L++;
while(nums[R]==nums[R-1] && R-1!=L) R--;
if(R - L <= 1) return -1;
return nums[L + 1];
}
int hash[26];
char findTheDifference(char * s, char * t){
memset(hash,0,sizeof(hash));
int i;
for(i=0;i<strlen(s);i++){
hash[s[i]-'a']++;
}
for(i=0;i<strlen(t);i++){
hash[t[i]-'a']--;
}
for(i=0;i<26;i++){
if(hash[i]==-1){
break;
}
}
return i+'a';
}