1. 排序算法
1.1 从小到大排序
int comp(const void* a, const void* b)
{
return *(int*)a - *(int*)b;
}
int breakfastNumber(int* staple, int stapleSize) {
qsort(staple, stapleSize, sizeof(int), comp);
}
2. 打印数组(一维和二维)
2.1 剑指 Offer 17. 打印从1到最大的n位数(一维)
- 声明返回数组的大小:*returnSize = len;
- 定义并初始化一个数组,申请一个长度为len的空间:
int* ans = (int*)malloc(sizeof(int) * len);
int* printNumbers(int n, int* returnSize) {
int len = 1, i;
for (i = 1; i <= n; i++)
{
len *= 10;
}
len--;
*returnSize = len;
int* ans = (int*)malloc(sizeof(int) * len);
for (i = 0; i < len; i++)
{
ans[i] = i + 1;
}
return ans;
}
2.2 二维数组:2022. 将一维数组转变成二维数组
int** construct2DArray(int* original, int originalSize, int m, int n, int* returnSize, int** returnColumnSizes){
if (originalSize != m * n) {
*returnSize = 0;
return NULL;
}
int ** ans = (int **)malloc(sizeof(int *) * m);
*returnColumnSizes = (int *)malloc(sizeof(int) * m);
for (int i = 0; i < m; ++i) {
ans[i] = (int *)malloc(sizeof(int) * n);
(*returnColumnSizes)[i] = n;
}
for (int i = 0; i < originalSize; i += n) {
memcpy(ans[i / n], original + i, sizeof(int) * n);
}
*returnSize = m;
return ans;
}
3. 打印数组
3.1