买卖股票的最佳时机
链接: link
题目描述:
代码实现:
int maxProfit(int* prices, int pricesSize)
{
int i = 0;
int minprices = prices[0];
int maxprices = 0;
for (i = 1; i < pricesSize; i++)
{
if (prices[i] < minprices)
{
minprices = prices[i];
}
else if (prices[i] - minprices > maxprices)
{
maxprices = prices[i] - minprices;
}
}
return maxprices;
}
数组拆分
链接: link
题目描述:
代码实现:
int cmp(int *a, int *b) {
return *a - *b;
}
int arrayPairSum(int *nums, int numsSize) {
qsort(nums, numsSize, sizeof(int), cmp);
int ans = 0;
for (int i = 0; i < numsSize; i += 2) {
ans += nums[i];
}
return ans;
}
丢失的数字
链接: link
题目描述:
代码实现:
int cmp(const void* p1,const void* p2)
{
return *(int*)p1-*(int*)p2;
}
int missingNumber(int* nums, int numsSize)
{
qsort(nums,numsSize,sizeof(int),cmp);
int tmp = 0;
int ans = 0;
ans^=numsSize;
for(int i = 0;i<numsSize;i++)
{
ans^=i;
tmp^=nums[i];
}
return ans^tmp;
}
分糖果
链接: link
题目描述:
代码实现:
int cmp(const void* p1,const void* p2)
{
return *(int*)p1-*(int*)p2;
}
int distributeCandies(int* candyType, int candyTypeSize)
{
qsort(candyType,candyTypeSize,sizeof(int),cmp);
int tmp = candyTypeSize/2;
int count = 1;
int i = 0;
for(i=1;i<candyTypeSize;i++)
{
if(candyType[i-1]==candyType[i])
{
continue;
}
else
{
count++;
}
}
if(count<=tmp)
{
return count;
}
else
{
return tmp;
}
}