剑指offer——最小的K个数

题目描述

输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。

剑指offer——最小的K个数_第1张图片
代码

    这里自己实现了一个 multiset 的比较函数,因为在定义 multiset 时我们必须提供两个类型:关键字类型和比较操作类型(应该是一种函数指针类型),用 decltype 来指出自定义操作类型,但是当用它来获得一个函数指针类型时,必须加上一个 * 来指出其为函数指针类型。在初始化时也要注意把函数指针作为参数传入。

    isBig 函数定义为 static 类型。对于定义这种函数,满足令函数返回 true 的元素排在前。这里就是a > b返回 true,则a排在前,即从大到小排。也可以直接用库函数greater。

multiset res(isBig);

或 multiset> res;

你可能感兴趣的:(剑指offer——最小的K个数)