代码如下:
int findMinArrowShots(int** points, int pointsRowSize, int pointsColSize) {
if(pointsRowSize==0)
return 0;
int cmp(const void* a,const void* b)
{
int* c;
int* d;
c=*(int*)a;
d=*(int*)b;
return *c-*d;
}
qsort(points,pointsRowSize,sizeof(int)*2,cmp);
for(int n=0;n<pointsRowSize;n++)
{
printf("%d",points[n][0]);
}
int end=points[0][1];
int count=1;
for(int n=1;n<pointsRowSize;n++)
{
if(points[n][0]<=end)
{
if(points[n][1]<end)
end=points[n][1];
}
else
{
count++;
end=points[n][1];
}
}
return count;
}
这个主要用的贪心算法。
这算是收获之一吧,其他的收获,主要是对c的qsort函数的融会贯通,以及对cmp函数的写法。
对连续存储地址的单元,去其中任一单元都可以进行比较,无论是数组结构体什么的,都可以的。