日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode:面试题40. 最小的k个数

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode:面试题40. 最小的k个数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

40. 最小的k個數

  • 題目:
  • 解題思路:
  • 源碼:

題目:

解題思路:

1、快速排序:
2、堆排序:
詳細解釋看leetcode的官網

源碼:

int comp(void *a,void *b){int *A = (int*)a;int *B = (int*)b;return *A - *B; } int* getLeastNumbers(int* arr, int arrSize, int k, int* returnSize){qsort(arr,arrSize,sizeof(int),comp);int *output=(int*)malloc(sizeof(int)*k);for(int i=0;i<k;i++){output[i]=arr[i];}*returnSize=k;return output; }

ps:qsort()函數包含在stdlib.h頭文件中
qsort()用法:
void qsort(void* base,size_t num,size_t width,int(__cdeclcompare)(const void,const void*));
參數1:要比較的數組
參數2:數組長度
參數3:數組類型
參數4:自定義比較排序,升序還是降序;
cmp()用法:
int cmp(const void *a, const void *b);

1、對int數組排序:

int cmp_int(const void* _a , const void* _b)  //參數格式固定 {int* a = (int*)_a; //強制類型轉換int* b = (int*)_b;return *a - *b;   } 默認升序排列(從小到大),如果想降序排列返回*b-*a即可。

2、對char數組排序:

int cmp_char(const void* _a , const void* _b)  //參數格式固定 {char* a = (char*)_a; //強制類型轉換char* b = (char*)_b;return *a - *b;   }qsort(word,100,sizeof(word[0]),cmp_char); 默認升序排列(從小到大),如果想降序排列返回*b-*a即可。

3、對double數組排序:

double in[100]; int cmp_double(const void* _a , const void* _b)  //參數格式固定 {double* a = (double*)_a; //強制類型轉換double* b = (double*)_b;return *a > *b ? 1 : -1;  //特別注意 }qsort(in,100,sizeof(in[0]),cmp_double); 在對浮點或者double型的一定要用三目運算符,因為要是使用像整型那樣相減 的話,如果是兩個很接近的數則可能返回一個很小的小數(大于-1,小于1), 而cmp的返回值是int型,因此會將這個小數返回0,系統認為是相等,失去了 本來存在的大小關系

4、對字符串排序:

char word[100][10]; int cmp_string(const void* _a , const void* _b)  //參數格式固定 {char* a = (char*)_a;  //強制類型轉換char* b = (char*)_b;return strcmp(a,b); }qsort(word,100,sizeof(word[0]),cmp_string); 新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的LeetCode:面试题40. 最小的k个数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。